Make AudioManager.getReportedSurroundFormats a TestApi

Access to the API needed from a tunnel mode CTS test.
TestAPIs dont work in CTS test if they intrenally call AudioSystem.
Changing getSurroundFormats and getReportedSurroundFormats to call
AudioService instead of AudioSystem.

Bug: 189823767
Test: atest android.media.cts.DecoderTest#testTunneledAudioPTSGapsAc3
Change-Id: If6287743f57b77d0eb2639e4a2e9409c7d778f06
This commit is contained in:
Kriti Dang
2021-06-04 14:51:48 +02:00
parent eedfc66f86
commit 1380c0e845
4 changed files with 42 additions and 15 deletions

View File

@@ -1419,6 +1419,7 @@ package android.media {
method @Nullable public static android.media.AudioDeviceInfo getDeviceInfoFromType(int);
method @IntRange(from=0) @RequiresPermission("android.permission.QUERY_AUDIO_STATE") public long getFadeOutDurationOnFocusLossMillis(@NonNull android.media.AudioAttributes);
method public static final int[] getPublicStreamTypes();
method @NonNull public java.util.List<java.lang.Integer> getReportedSurroundFormats();
method public int getStreamMinVolumeInt(int);
method @NonNull public java.util.Map<java.lang.Integer,java.lang.Boolean> getSurroundFormats();
method public boolean hasRegisteredDynamicPolicy();

View File

@@ -7078,14 +7078,11 @@ public class AudioManager {
@TestApi
@NonNull
public Map<Integer, Boolean> getSurroundFormats() {
Map<Integer, Boolean> surroundFormats = new HashMap<>();
int status = AudioSystem.getSurroundFormats(surroundFormats);
if (status != AudioManager.SUCCESS) {
// fail and bail!
Log.e(TAG, "getSurroundFormats failed:" + status);
return new HashMap<Integer, Boolean>(); // Always return a map.
try {
return getService().getSurroundFormats();
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
return surroundFormats;
}
/**
@@ -7132,15 +7129,14 @@ public class AudioManager {
*
* @return a list of surround formats
*/
public ArrayList<Integer> getReportedSurroundFormats() {
ArrayList<Integer> reportedSurroundFormats = new ArrayList<>();
int status = AudioSystem.getReportedSurroundFormats(reportedSurroundFormats);
if (status != AudioManager.SUCCESS) {
// fail and bail!
Log.e(TAG, "getReportedSurroundFormats failed:" + status);
return new ArrayList<Integer>(); // Always return a list.
@TestApi
@NonNull
public List<Integer> getReportedSurroundFormats() {
try {
return getService().getReportedSurroundFormats();
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
return reportedSurroundFormats;
}
/**

View File

@@ -163,6 +163,10 @@ interface IAudioService {
oneway void reloadAudioSettings();
Map getSurroundFormats();
List getReportedSurroundFormats();
boolean setSurroundFormatEnabled(int audioFormat, boolean enabled);
boolean isSurroundFormatEnabled(int audioFormat);

View File

@@ -1932,6 +1932,32 @@ public class AudioService extends IAudioService.Stub
}
}
/** @see AudioManager#getSurroundFormats() */
@Override
public Map<Integer, Boolean> getSurroundFormats() {
Map<Integer, Boolean> surroundFormats = new HashMap<>();
int status = AudioSystem.getSurroundFormats(surroundFormats);
if (status != AudioManager.SUCCESS) {
// fail and bail!
Log.e(TAG, "getSurroundFormats failed:" + status);
return new HashMap<>(); // Always return a map.
}
return surroundFormats;
}
/** @see AudioManager#getReportedSurroundFormats() */
@Override
public List<Integer> getReportedSurroundFormats() {
ArrayList<Integer> reportedSurroundFormats = new ArrayList<>();
int status = AudioSystem.getReportedSurroundFormats(reportedSurroundFormats);
if (status != AudioManager.SUCCESS) {
// fail and bail!
Log.e(TAG, "getReportedSurroundFormats failed:" + status);
return new ArrayList<>(); // Always return a list.
}
return reportedSurroundFormats;
}
/** @see AudioManager#isSurroundFormatEnabled(int) */
@Override
public boolean isSurroundFormatEnabled(int audioFormat) {