Merge "Adding unknown constant to AudioManager ENCODED_SURROUND_OUTPUT mode constants" into sc-dev
This commit is contained in:
@@ -20475,6 +20475,7 @@ package android.media {
|
|||||||
field public static final int ENCODED_SURROUND_OUTPUT_AUTO = 0; // 0x0
|
field public static final int ENCODED_SURROUND_OUTPUT_AUTO = 0; // 0x0
|
||||||
field public static final int ENCODED_SURROUND_OUTPUT_MANUAL = 3; // 0x3
|
field public static final int ENCODED_SURROUND_OUTPUT_MANUAL = 3; // 0x3
|
||||||
field public static final int ENCODED_SURROUND_OUTPUT_NEVER = 1; // 0x1
|
field public static final int ENCODED_SURROUND_OUTPUT_NEVER = 1; // 0x1
|
||||||
|
field public static final int ENCODED_SURROUND_OUTPUT_UNKNOWN = -1; // 0xffffffff
|
||||||
field public static final int ERROR = -1; // 0xffffffff
|
field public static final int ERROR = -1; // 0xffffffff
|
||||||
field public static final int ERROR_DEAD_OBJECT = -6; // 0xfffffffa
|
field public static final int ERROR_DEAD_OBJECT = -6; // 0xfffffffa
|
||||||
field public static final String EXTRA_AUDIO_PLUG_STATE = "android.media.extra.AUDIO_PLUG_STATE";
|
field public static final String EXTRA_AUDIO_PLUG_STATE = "android.media.extra.AUDIO_PLUG_STATE";
|
||||||
|
|||||||
@@ -13825,6 +13825,12 @@ public final class Settings {
|
|||||||
*/
|
*/
|
||||||
public static final int ENCODED_SURROUND_OUTPUT_MANUAL = 3;
|
public static final int ENCODED_SURROUND_OUTPUT_MANUAL = 3;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The maximum value for surround sound output mode in Android S.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public static final int ENCODED_SURROUND_SC_MAX = ENCODED_SURROUND_OUTPUT_MANUAL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set to ENCODED_SURROUND_OUTPUT_AUTO,
|
* Set to ENCODED_SURROUND_OUTPUT_AUTO,
|
||||||
* ENCODED_SURROUND_OUTPUT_NEVER,
|
* ENCODED_SURROUND_OUTPUT_NEVER,
|
||||||
|
|||||||
@@ -569,6 +569,7 @@ public class AudioManager {
|
|||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
@IntDef(prefix = {"ENCODED_SURROUND_OUTPUT_"}, value = {
|
@IntDef(prefix = {"ENCODED_SURROUND_OUTPUT_"}, value = {
|
||||||
|
ENCODED_SURROUND_OUTPUT_UNKNOWN,
|
||||||
ENCODED_SURROUND_OUTPUT_AUTO,
|
ENCODED_SURROUND_OUTPUT_AUTO,
|
||||||
ENCODED_SURROUND_OUTPUT_NEVER,
|
ENCODED_SURROUND_OUTPUT_NEVER,
|
||||||
ENCODED_SURROUND_OUTPUT_ALWAYS,
|
ENCODED_SURROUND_OUTPUT_ALWAYS,
|
||||||
@@ -577,6 +578,11 @@ public class AudioManager {
|
|||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
public @interface EncodedSurroundOutputMode {}
|
public @interface EncodedSurroundOutputMode {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The mode for surround sound formats is unknown.
|
||||||
|
*/
|
||||||
|
public static final int ENCODED_SURROUND_OUTPUT_UNKNOWN = -1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The surround sound formats are available for use if they are detected. This is the default
|
* The surround sound formats are available for use if they are detected. This is the default
|
||||||
* mode.
|
* mode.
|
||||||
@@ -6873,7 +6879,8 @@ public class AudioManager {
|
|||||||
@RequiresPermission(android.Manifest.permission.WRITE_SETTINGS)
|
@RequiresPermission(android.Manifest.permission.WRITE_SETTINGS)
|
||||||
public @EncodedSurroundOutputMode int getEncodedSurroundMode() {
|
public @EncodedSurroundOutputMode int getEncodedSurroundMode() {
|
||||||
try {
|
try {
|
||||||
return getService().getEncodedSurroundMode();
|
return getService().getEncodedSurroundMode(
|
||||||
|
getContext().getApplicationInfo().targetSdkVersion);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
throw e.rethrowFromSystemServer();
|
throw e.rethrowFromSystemServer();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -164,7 +164,7 @@ interface IAudioService {
|
|||||||
|
|
||||||
boolean setEncodedSurroundMode(int mode);
|
boolean setEncodedSurroundMode(int mode);
|
||||||
|
|
||||||
int getEncodedSurroundMode();
|
int getEncodedSurroundMode(int targetSdkVersion);
|
||||||
|
|
||||||
oneway void avrcpSupportsAbsoluteVolume(String address, boolean support);
|
oneway void avrcpSupportsAbsoluteVolume(String address, boolean support);
|
||||||
|
|
||||||
|
|||||||
@@ -1925,7 +1925,7 @@ public class AudioService extends IAudioService.Stub
|
|||||||
|
|
||||||
/** @see AudioManager#setEncodedSurroundMode(int) */
|
/** @see AudioManager#setEncodedSurroundMode(int) */
|
||||||
@Override
|
@Override
|
||||||
public boolean setEncodedSurroundMode(int mode) {
|
public boolean setEncodedSurroundMode(@AudioManager.EncodedSurroundOutputMode int mode) {
|
||||||
if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.WRITE_SETTINGS)
|
if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.WRITE_SETTINGS)
|
||||||
!= PackageManager.PERMISSION_GRANTED) {
|
!= PackageManager.PERMISSION_GRANTED) {
|
||||||
throw new SecurityException("Missing WRITE_SETTINGS permission");
|
throw new SecurityException("Missing WRITE_SETTINGS permission");
|
||||||
@@ -1936,7 +1936,7 @@ public class AudioService extends IAudioService.Stub
|
|||||||
synchronized (mSettingsLock) {
|
synchronized (mSettingsLock) {
|
||||||
Settings.Global.putInt(mContentResolver,
|
Settings.Global.putInt(mContentResolver,
|
||||||
Settings.Global.ENCODED_SURROUND_OUTPUT,
|
Settings.Global.ENCODED_SURROUND_OUTPUT,
|
||||||
mode);
|
toEncodedSurroundSetting(mode));
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
Binder.restoreCallingIdentity(token);
|
Binder.restoreCallingIdentity(token);
|
||||||
@@ -1946,7 +1946,7 @@ public class AudioService extends IAudioService.Stub
|
|||||||
|
|
||||||
/** @see AudioManager#getEncodedSurroundMode() */
|
/** @see AudioManager#getEncodedSurroundMode() */
|
||||||
@Override
|
@Override
|
||||||
public int getEncodedSurroundMode() {
|
public int getEncodedSurroundMode(int targetSdkVersion) {
|
||||||
if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.WRITE_SETTINGS)
|
if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.WRITE_SETTINGS)
|
||||||
!= PackageManager.PERMISSION_GRANTED) {
|
!= PackageManager.PERMISSION_GRANTED) {
|
||||||
throw new SecurityException("Missing WRITE_SETTINGS permission");
|
throw new SecurityException("Missing WRITE_SETTINGS permission");
|
||||||
@@ -1955,9 +1955,10 @@ public class AudioService extends IAudioService.Stub
|
|||||||
final long token = Binder.clearCallingIdentity();
|
final long token = Binder.clearCallingIdentity();
|
||||||
try {
|
try {
|
||||||
synchronized (mSettingsLock) {
|
synchronized (mSettingsLock) {
|
||||||
return Settings.Global.getInt(mContentResolver,
|
int encodedSurroundSetting = Settings.Global.getInt(mContentResolver,
|
||||||
Settings.Global.ENCODED_SURROUND_OUTPUT,
|
Settings.Global.ENCODED_SURROUND_OUTPUT,
|
||||||
AudioManager.ENCODED_SURROUND_OUTPUT_AUTO);
|
AudioManager.ENCODED_SURROUND_OUTPUT_AUTO);
|
||||||
|
return toEncodedSurroundOutputMode(encodedSurroundSetting, targetSdkVersion);
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
Binder.restoreCallingIdentity(token);
|
Binder.restoreCallingIdentity(token);
|
||||||
@@ -1981,6 +1982,41 @@ public class AudioService extends IAudioService.Stub
|
|||||||
return formats;
|
return formats;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("AndroidFrameworkCompatChange")
|
||||||
|
@AudioManager.EncodedSurroundOutputMode
|
||||||
|
private int toEncodedSurroundOutputMode(int encodedSurroundSetting, int targetSdkVersion) {
|
||||||
|
if (targetSdkVersion <= Build.VERSION_CODES.S
|
||||||
|
&& encodedSurroundSetting > Settings.Global.ENCODED_SURROUND_SC_MAX) {
|
||||||
|
return AudioManager.ENCODED_SURROUND_OUTPUT_UNKNOWN;
|
||||||
|
}
|
||||||
|
switch (encodedSurroundSetting) {
|
||||||
|
case Settings.Global.ENCODED_SURROUND_OUTPUT_AUTO:
|
||||||
|
return AudioManager.ENCODED_SURROUND_OUTPUT_AUTO;
|
||||||
|
case Settings.Global.ENCODED_SURROUND_OUTPUT_NEVER:
|
||||||
|
return AudioManager.ENCODED_SURROUND_OUTPUT_NEVER;
|
||||||
|
case Settings.Global.ENCODED_SURROUND_OUTPUT_ALWAYS:
|
||||||
|
return AudioManager.ENCODED_SURROUND_OUTPUT_ALWAYS;
|
||||||
|
case Settings.Global.ENCODED_SURROUND_OUTPUT_MANUAL:
|
||||||
|
return AudioManager.ENCODED_SURROUND_OUTPUT_MANUAL;
|
||||||
|
default:
|
||||||
|
return AudioManager.ENCODED_SURROUND_OUTPUT_UNKNOWN;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int toEncodedSurroundSetting(
|
||||||
|
@AudioManager.EncodedSurroundOutputMode int encodedSurroundOutputMode) {
|
||||||
|
switch (encodedSurroundOutputMode) {
|
||||||
|
case AudioManager.ENCODED_SURROUND_OUTPUT_NEVER:
|
||||||
|
return Settings.Global.ENCODED_SURROUND_OUTPUT_NEVER;
|
||||||
|
case AudioManager.ENCODED_SURROUND_OUTPUT_ALWAYS:
|
||||||
|
return Settings.Global.ENCODED_SURROUND_OUTPUT_ALWAYS;
|
||||||
|
case AudioManager.ENCODED_SURROUND_OUTPUT_MANUAL:
|
||||||
|
return Settings.Global.ENCODED_SURROUND_OUTPUT_MANUAL;
|
||||||
|
default:
|
||||||
|
return Settings.Global.ENCODED_SURROUND_OUTPUT_AUTO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private boolean isSurroundFormat(int audioFormat) {
|
private boolean isSurroundFormat(int audioFormat) {
|
||||||
for (int sf : AudioFormat.SURROUND_SOUND_ENCODING) {
|
for (int sf : AudioFormat.SURROUND_SOUND_ENCODING) {
|
||||||
if (sf == audioFormat) {
|
if (sf == audioFormat) {
|
||||||
|
|||||||
Reference in New Issue
Block a user