Loading services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java +14 −2 Original line number Original line Diff line number Diff line Loading @@ -353,6 +353,10 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { mService.sendCecCommand( mService.sendCecCommand( HdmiCecMessageBuilder.buildDeviceVendorIdCommand(mAddress, mService.getVendorId())); HdmiCecMessageBuilder.buildDeviceVendorIdCommand(mAddress, mService.getVendorId())); mService.registerTvInputCallback(mTvInputCallback); mService.registerTvInputCallback(mTvInputCallback); // Some TVs, for example Mi TV, need ARC on before turning System Audio Mode on // to request Short Audio Descriptor. Since ARC and SAM are independent, // we can turn on ARC anyways when audio system device just boots up. initArcOnFromAvr(); int systemAudioControlOnPowerOnProp = int systemAudioControlOnPowerOnProp = SystemProperties.getInt( SystemProperties.getInt( PROPERTY_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, PROPERTY_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, Loading Loading @@ -919,8 +923,8 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { // Since some TVs don't request ARC on with System Audio Mode on request // Since some TVs don't request ARC on with System Audio Mode on request if (SystemProperties.getBoolean(Constants.PROPERTY_ARC_SUPPORT, true) if (SystemProperties.getBoolean(Constants.PROPERTY_ARC_SUPPORT, true) && isDirectConnectToTv()) { && isDirectConnectToTv()) { if (newSystemAudioMode && !isArcEnabled()) { if (newSystemAudioMode && !isArcEnabled() removeAction(ArcInitiationActionFromAvr.class); && !hasAction(ArcInitiationActionFromAvr.class)) { addAndStartAction(new ArcInitiationActionFromAvr(this)); addAndStartAction(new ArcInitiationActionFromAvr(this)); } else if (!newSystemAudioMode && isArcEnabled()) { } else if (!newSystemAudioMode && isArcEnabled()) { removeAction(ArcTerminationActionFromAvr.class); removeAction(ArcTerminationActionFromAvr.class); Loading Loading @@ -1096,6 +1100,14 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { } } } } private void initArcOnFromAvr() { if (SystemProperties.getBoolean(Constants.PROPERTY_ARC_SUPPORT, true) && isDirectConnectToTv() && !isArcEnabled()) { removeAction(ArcInitiationActionFromAvr.class); addAndStartAction(new ArcInitiationActionFromAvr(this)); } } @Override @Override protected void switchInputOnReceivingNewActivePath(int physicalAddress) { protected void switchInputOnReceivingNewActivePath(int physicalAddress) { int port = mService.pathToPortId(physicalAddress); int port = mService.pathToPortId(physicalAddress); Loading Loading
services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java +14 −2 Original line number Original line Diff line number Diff line Loading @@ -353,6 +353,10 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { mService.sendCecCommand( mService.sendCecCommand( HdmiCecMessageBuilder.buildDeviceVendorIdCommand(mAddress, mService.getVendorId())); HdmiCecMessageBuilder.buildDeviceVendorIdCommand(mAddress, mService.getVendorId())); mService.registerTvInputCallback(mTvInputCallback); mService.registerTvInputCallback(mTvInputCallback); // Some TVs, for example Mi TV, need ARC on before turning System Audio Mode on // to request Short Audio Descriptor. Since ARC and SAM are independent, // we can turn on ARC anyways when audio system device just boots up. initArcOnFromAvr(); int systemAudioControlOnPowerOnProp = int systemAudioControlOnPowerOnProp = SystemProperties.getInt( SystemProperties.getInt( PROPERTY_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, PROPERTY_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, Loading Loading @@ -919,8 +923,8 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { // Since some TVs don't request ARC on with System Audio Mode on request // Since some TVs don't request ARC on with System Audio Mode on request if (SystemProperties.getBoolean(Constants.PROPERTY_ARC_SUPPORT, true) if (SystemProperties.getBoolean(Constants.PROPERTY_ARC_SUPPORT, true) && isDirectConnectToTv()) { && isDirectConnectToTv()) { if (newSystemAudioMode && !isArcEnabled()) { if (newSystemAudioMode && !isArcEnabled() removeAction(ArcInitiationActionFromAvr.class); && !hasAction(ArcInitiationActionFromAvr.class)) { addAndStartAction(new ArcInitiationActionFromAvr(this)); addAndStartAction(new ArcInitiationActionFromAvr(this)); } else if (!newSystemAudioMode && isArcEnabled()) { } else if (!newSystemAudioMode && isArcEnabled()) { removeAction(ArcTerminationActionFromAvr.class); removeAction(ArcTerminationActionFromAvr.class); Loading Loading @@ -1096,6 +1100,14 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { } } } } private void initArcOnFromAvr() { if (SystemProperties.getBoolean(Constants.PROPERTY_ARC_SUPPORT, true) && isDirectConnectToTv() && !isArcEnabled()) { removeAction(ArcInitiationActionFromAvr.class); addAndStartAction(new ArcInitiationActionFromAvr(this)); } } @Override @Override protected void switchInputOnReceivingNewActivePath(int physicalAddress) { protected void switchInputOnReceivingNewActivePath(int physicalAddress) { int port = mService.pathToPortId(physicalAddress); int port = mService.pathToPortId(physicalAddress); Loading