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
Merged-In: If6287743f57b77d0eb2639e4a2e9409c7d778f06
This commit is contained in:
Kriti Dang
2021-06-04 14:51:48 +02:00
parent 0c36db22b4
commit 00e49c1482
4 changed files with 42 additions and 15 deletions

View File

@@ -1421,6 +1421,7 @@ package android.media {
method @RequiresPermission("android.permission.QUERY_AUDIO_STATE") public int abandonAudioFocusForTest(@NonNull android.media.AudioFocusRequest, @NonNull String);
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 @NonNull public java.util.List<java.lang.Integer> getReportedSurroundFormats();
method @NonNull public java.util.Map<java.lang.Integer,java.lang.Boolean> getSurroundFormats();
method public boolean hasRegisteredDynamicPolicy();
method @RequiresPermission(anyOf={android.Manifest.permission.MODIFY_AUDIO_ROUTING, android.Manifest.permission.QUERY_AUDIO_STATE}) public boolean isFullVolumeDevice();

View File

@@ -7062,14 +7062,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;
}
/**
@@ -7116,15 +7113,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

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

View File

@@ -1930,6 +1930,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) {