Loading services/core/java/com/android/server/hdmi/Constants.java +1 −0 Original line number Diff line number Diff line Loading @@ -186,6 +186,7 @@ final class Constants { static final int INVALID_PORT_ID = HdmiDeviceInfo.PORT_INVALID; static final int INVALID_PHYSICAL_ADDRESS = HdmiDeviceInfo.PATH_INVALID; static final int PATH_INTERNAL = HdmiDeviceInfo.PATH_INTERNAL; // Send result codes. It should be consistent with hdmi_cec.h's send_message error code. static final int SEND_RESULT_SUCCESS = 0; Loading services/core/java/com/android/server/hdmi/SystemAudioAction.java +15 −2 Original line number Diff line number Diff line Loading @@ -90,10 +90,9 @@ abstract class SystemAudioAction extends HdmiCecFeatureAction { } private void sendSystemAudioModeRequestInternal() { int avrPhysicalAddress = tv().getAvrDeviceInfo().getPhysicalAddress(); HdmiCecMessage command = HdmiCecMessageBuilder.buildSystemAudioModeRequest( getSourceAddress(), mAvrLogicalAddress, avrPhysicalAddress, mTargetAudioStatus); mAvrLogicalAddress, getSystemAudioModeRequestParam(), mTargetAudioStatus); sendCommand(command, new HdmiControlService.SendMessageCallback() { @Override public void onSendCompleted(int error) { Loading @@ -108,6 +107,20 @@ abstract class SystemAudioAction extends HdmiCecFeatureAction { addTimer(mState, mTargetAudioStatus ? ON_TIMEOUT_MS : OFF_TIMEOUT_MS); } private int getSystemAudioModeRequestParam() { // <System Audio Mode Request> takes the physical address of the source device // as a parameter. Get it from following candidates, in the order listed below: // 1) physical address of the active source // 2) active routing path // 3) physical address of TV if (tv().getActiveSource().isValid()) { return tv().getActiveSource().physicalAddress; } int param = tv().getActivePath(); return param != Constants.INVALID_PHYSICAL_ADDRESS ? param : Constants.PATH_INTERNAL; } private void handleSendSystemAudioModeRequestTimeout() { if (!mTargetAudioStatus // Don't retry for Off case. || mSendRetryCount++ >= MAX_SEND_RETRY_COUNT) { Loading Loading
services/core/java/com/android/server/hdmi/Constants.java +1 −0 Original line number Diff line number Diff line Loading @@ -186,6 +186,7 @@ final class Constants { static final int INVALID_PORT_ID = HdmiDeviceInfo.PORT_INVALID; static final int INVALID_PHYSICAL_ADDRESS = HdmiDeviceInfo.PATH_INVALID; static final int PATH_INTERNAL = HdmiDeviceInfo.PATH_INTERNAL; // Send result codes. It should be consistent with hdmi_cec.h's send_message error code. static final int SEND_RESULT_SUCCESS = 0; Loading
services/core/java/com/android/server/hdmi/SystemAudioAction.java +15 −2 Original line number Diff line number Diff line Loading @@ -90,10 +90,9 @@ abstract class SystemAudioAction extends HdmiCecFeatureAction { } private void sendSystemAudioModeRequestInternal() { int avrPhysicalAddress = tv().getAvrDeviceInfo().getPhysicalAddress(); HdmiCecMessage command = HdmiCecMessageBuilder.buildSystemAudioModeRequest( getSourceAddress(), mAvrLogicalAddress, avrPhysicalAddress, mTargetAudioStatus); mAvrLogicalAddress, getSystemAudioModeRequestParam(), mTargetAudioStatus); sendCommand(command, new HdmiControlService.SendMessageCallback() { @Override public void onSendCompleted(int error) { Loading @@ -108,6 +107,20 @@ abstract class SystemAudioAction extends HdmiCecFeatureAction { addTimer(mState, mTargetAudioStatus ? ON_TIMEOUT_MS : OFF_TIMEOUT_MS); } private int getSystemAudioModeRequestParam() { // <System Audio Mode Request> takes the physical address of the source device // as a parameter. Get it from following candidates, in the order listed below: // 1) physical address of the active source // 2) active routing path // 3) physical address of TV if (tv().getActiveSource().isValid()) { return tv().getActiveSource().physicalAddress; } int param = tv().getActivePath(); return param != Constants.INVALID_PHYSICAL_ADDRESS ? param : Constants.PATH_INTERNAL; } private void handleSendSystemAudioModeRequestTimeout() { if (!mTargetAudioStatus // Don't retry for Off case. || mSendRetryCount++ >= MAX_SEND_RETRY_COUNT) { Loading