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

Commit 764afbba authored by Henry Fang's avatar Henry Fang Committed by Gerrit Code Review
Browse files

Merge "Add TvInputManager.Hardware overrideAudioSink with AudioDeviceInfo"

parents 325365b7 600a4301
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -5881,6 +5881,7 @@ package android.media.tv {
  public static final class TvInputManager.Hardware {
  public static final class TvInputManager.Hardware {
    method public void overrideAudioSink(int, String, int, int, int);
    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 void setStreamVolume(float);
    method public boolean setSurface(android.view.Surface, android.media.tv.TvStreamConfig);
    method public boolean setSurface(android.view.Surface, android.media.tv.TvStreamConfig);
  }
  }
+36 −0
Original line number Original line Diff line number Diff line
@@ -18,6 +18,7 @@ package android.media.tv;


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


/**
/**
@@ -2998,6 +3002,16 @@ public final class TvInputManager {
            return false;
            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,
        public void overrideAudioSink(int audioType, String audioAddress, int samplingRate,
                int channelMask, int format) {
                int channelMask, int format) {
            try {
            try {
@@ -3007,5 +3021,27 @@ public final class TvInputManager {
                throw new RuntimeException(e);
                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);
            }
        }
    }
    }
}
}