Check for eARC TX feature flag
Bug: 258393310 Test: atest Change-Id: Ief8d3b32471895ba28b72f811fcc2cea48e9aa5c
This commit is contained in:
@@ -620,6 +620,12 @@ final class Constants {
|
||||
@interface HpdSignalType {}
|
||||
|
||||
static final String DEVICE_CONFIG_FEATURE_FLAG_SOUNDBAR_MODE = "soundbar_mode";
|
||||
static final String DEVICE_CONFIG_FEATURE_FLAG_ENABLE_EARC_TX = "enable_earc_tx";
|
||||
@StringDef({
|
||||
DEVICE_CONFIG_FEATURE_FLAG_SOUNDBAR_MODE,
|
||||
DEVICE_CONFIG_FEATURE_FLAG_ENABLE_EARC_TX
|
||||
})
|
||||
@interface FeatureFlag {}
|
||||
|
||||
private Constants() {
|
||||
/* cannot be instantiated */
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.server.hdmi;
|
||||
|
||||
import static android.hardware.hdmi.HdmiControlManager.DEVICE_EVENT_ADD_DEVICE;
|
||||
import static android.hardware.hdmi.HdmiControlManager.DEVICE_EVENT_REMOVE_DEVICE;
|
||||
import static android.hardware.hdmi.HdmiControlManager.EARC_FEATURE_DISABLED;
|
||||
import static android.hardware.hdmi.HdmiControlManager.EARC_FEATURE_ENABLED;
|
||||
import static android.hardware.hdmi.HdmiControlManager.HDMI_CEC_CONTROL_ENABLED;
|
||||
import static android.hardware.hdmi.HdmiControlManager.SOUNDBAR_MODE_DISABLED;
|
||||
@@ -453,6 +454,9 @@ public class HdmiControlService extends SystemService {
|
||||
@ServiceThreadOnly
|
||||
private boolean mSoundbarModeFeatureFlagEnabled = false;
|
||||
|
||||
@ServiceThreadOnly
|
||||
private boolean mEarcTxFeatureFlagEnabled = false;
|
||||
|
||||
@ServiceThreadOnly
|
||||
private int mActivePortId = Constants.INVALID_PORT_ID;
|
||||
|
||||
@@ -666,9 +670,18 @@ public class HdmiControlService extends SystemService {
|
||||
setProhibitMode(false);
|
||||
mHdmiControlEnabled = mHdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED);
|
||||
|
||||
mSoundbarModeFeatureFlagEnabled = mDeviceConfig.getBoolean(
|
||||
Constants.DEVICE_CONFIG_FEATURE_FLAG_SOUNDBAR_MODE, false);
|
||||
mEarcTxFeatureFlagEnabled = mDeviceConfig.getBoolean(
|
||||
Constants.DEVICE_CONFIG_FEATURE_FLAG_ENABLE_EARC_TX, false);
|
||||
|
||||
synchronized (mLock) {
|
||||
mEarcEnabled = (mHdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.SETTING_NAME_EARC_ENABLED) == EARC_FEATURE_ENABLED);
|
||||
if (isTvDevice()) {
|
||||
mEarcEnabled &= mEarcTxFeatureFlagEnabled;
|
||||
}
|
||||
}
|
||||
setHdmiCecVolumeControlEnabledInternal(getHdmiCecConfig().getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_VOLUME_CONTROL_MODE));
|
||||
@@ -812,20 +825,42 @@ public class HdmiControlService extends SystemService {
|
||||
}
|
||||
}
|
||||
}, mServiceThreadExecutor);
|
||||
|
||||
if (isTvDevice()) {
|
||||
mDeviceConfig.addOnPropertiesChangedListener(getContext().getMainExecutor(),
|
||||
new DeviceConfig.OnPropertiesChangedListener() {
|
||||
@Override
|
||||
public void onPropertiesChanged(DeviceConfig.Properties properties) {
|
||||
mEarcTxFeatureFlagEnabled = properties.getBoolean(
|
||||
Constants.DEVICE_CONFIG_FEATURE_FLAG_ENABLE_EARC_TX,
|
||||
false);
|
||||
boolean earcEnabledSetting = mHdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.SETTING_NAME_EARC_ENABLED)
|
||||
== EARC_FEATURE_ENABLED;
|
||||
setEarcEnabled(earcEnabledSetting && mEarcTxFeatureFlagEnabled
|
||||
? EARC_FEATURE_ENABLED : EARC_FEATURE_DISABLED);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
mHdmiCecConfig.registerChangeListener(HdmiControlManager.SETTING_NAME_EARC_ENABLED,
|
||||
new HdmiCecConfig.SettingChangeListener() {
|
||||
@Override
|
||||
public void onChange(String setting) {
|
||||
@HdmiControlManager.HdmiCecControl int enabled = mHdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.SETTING_NAME_EARC_ENABLED);
|
||||
setEarcEnabled(enabled);
|
||||
if (isTvDevice()) {
|
||||
boolean earcEnabledSetting = mHdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.SETTING_NAME_EARC_ENABLED)
|
||||
== EARC_FEATURE_ENABLED;
|
||||
setEarcEnabled(earcEnabledSetting && mEarcTxFeatureFlagEnabled
|
||||
? EARC_FEATURE_ENABLED : EARC_FEATURE_DISABLED);
|
||||
} else {
|
||||
setEarcEnabled(mHdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.SETTING_NAME_EARC_ENABLED));
|
||||
}
|
||||
}
|
||||
},
|
||||
mServiceThreadExecutor);
|
||||
|
||||
mSoundbarModeFeatureFlagEnabled = mDeviceConfig.getBoolean(
|
||||
Constants.DEVICE_CONFIG_FEATURE_FLAG_SOUNDBAR_MODE, false);
|
||||
|
||||
mDeviceConfig.addOnPropertiesChangedListener(getContext().getMainExecutor(),
|
||||
new DeviceConfig.OnPropertiesChangedListener() {
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user