Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1553a9e authored by Amy Zhang's avatar Amy Zhang Committed by Android (Google) Code Review
Browse files

Merge "Fix <System Audio Mode Request> handler"

parents 38fcc90e 98c311f8
Loading
Loading
Loading
Loading
+1 −25
Original line number Diff line number Diff line
@@ -27,9 +27,6 @@ public class ArcInitiationActionFromAvr extends HdmiCecFeatureAction {

    // the required maximum response time specified in CEC 9.2
    private static final int TIMEOUT_MS = 1000;
    private static final int MAX_RETRY_COUNT = 5;

    private int mSendRequestActiveSourceRetryCount = 0;

    ArcInitiationActionFromAvr(HdmiCecLocalDevice source) {
        super(source);
@@ -64,12 +61,7 @@ public class ArcInitiationActionFromAvr extends HdmiCecFeatureAction {
                return true;
            case Constants.MESSAGE_REPORT_ARC_INITIATED:
                mState = STATE_ARC_INITIATED;
                if (audioSystem().getActiveSource().physicalAddress != getSourcePath()
                        && audioSystem().isSystemAudioActivated()) {
                    sendRequestActiveSource();
                } else {
                finish();
                }
                return true;
        }
        return false;
@@ -103,20 +95,4 @@ public class ArcInitiationActionFromAvr extends HdmiCecFeatureAction {
        audioSystem().setArcStatus(false);
        finish();
    }

    protected void sendRequestActiveSource() {
        sendCommand(HdmiCecMessageBuilder.buildRequestActiveSource(getSourceAddress()),
                result -> {
                    if (result != SendMessageResult.SUCCESS) {
                        if (mSendRequestActiveSourceRetryCount < MAX_RETRY_COUNT) {
                            mSendRequestActiveSourceRetryCount++;
                            sendRequestActiveSource();
                        } else {
                            finish();
                        }
                    } else {
                        finish();
                    }
                });
    }
}
+9 −0
Original line number Diff line number Diff line
@@ -786,6 +786,15 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource {
        mService.sendCecCommand(
                HdmiCecMessageBuilder.buildSetSystemAudioMode(
                        mAddress, Constants.ADDR_BROADCAST, systemAudioStatusOn));

        if (systemAudioStatusOn) {
            int sourcePhysicalAddress = HdmiUtils.twoBytesToInt(message.getParams());
            if (sourcePhysicalAddress != getActiveSource().physicalAddress) {
                // If the Active Source recorded by the current device is not synced up with TV,
                // TODO(amyjojo): update Active Source internally
            }
            switchInputOnReceivingNewActivePath(sourcePhysicalAddress);
        }
        return true;
    }