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

Commit e992e5c2 authored by Sherry Huang's avatar Sherry Huang Committed by Android (Google) Code Review
Browse files

Merge "HDMI: improve communication between CEC framework and HAL" into main

parents 9b936607 9ac2f345
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -100,6 +100,9 @@ public class HdmiCecNetwork {
    // Map from port ID to HdmiDeviceInfo.
    private UnmodifiableSparseArray<HdmiDeviceInfo> mPortDeviceMap;

    // Cached physical address.
    private int mPhysicalAddress = Constants.INVALID_PHYSICAL_ADDRESS;

    HdmiCecNetwork(HdmiControlService hdmiControlService,
            HdmiCecController hdmiCecController,
            HdmiMhlControllerStub hdmiMhlController) {
@@ -431,6 +434,8 @@ public class HdmiCecNetwork {
        // each port. Return empty array if CEC HAL didn't provide the info.
        if (mHdmiCecController != null) {
            cecPortInfo = mHdmiCecController.getPortInfos();
            // Invalid cached physical address.
            mPhysicalAddress = Constants.INVALID_PHYSICAL_ADDRESS;
        }
        if (cecPortInfo == null) {
            return;
@@ -856,7 +861,10 @@ public class HdmiCecNetwork {
    }

    public int getPhysicalAddress() {
        return mHdmiCecController.getPhysicalAddress();
        if (mPhysicalAddress == Constants.INVALID_PHYSICAL_ADDRESS) {
            mPhysicalAddress = mHdmiCecController.getPhysicalAddress();
        }
        return mPhysicalAddress;
    }

    @ServiceThreadOnly
+1 −1
Original line number Diff line number Diff line
@@ -1567,7 +1567,7 @@ public class HdmiControlService extends SystemService {
     * Returns physical address of the device.
     */
    int getPhysicalAddress() {
        return mCecController.getPhysicalAddress();
        return mHdmiCecNetwork.getPhysicalAddress();
    }

    /**
+2 −2
Original line number Diff line number Diff line
@@ -86,6 +86,8 @@ public class ActiveSourceActionTest {
        mHdmiControlService.setHdmiCecConfig(new FakeHdmiCecConfig(mContextSpy));
        mHdmiControlService.setDeviceConfig(new FakeDeviceConfigWrapper());
        mNativeWrapper = new FakeNativeWrapper();
        mPhysicalAddress = 0x2000;
        mNativeWrapper.setPhysicalAddress(mPhysicalAddress);
        HdmiCecController hdmiCecController = HdmiCecController.createWithNativeWrapper(
                this.mHdmiControlService, mNativeWrapper, mHdmiControlService.getAtomWriter());
        mHdmiControlService.setCecController(hdmiCecController);
@@ -94,8 +96,6 @@ public class ActiveSourceActionTest {
        mHdmiControlService.onBootPhase(PHASE_SYSTEM_SERVICES_READY);
        mPowerManager = new FakePowerManagerWrapper(mContextSpy);
        mHdmiControlService.setPowerManager(mPowerManager);
        mPhysicalAddress = 0x2000;
        mNativeWrapper.setPhysicalAddress(mPhysicalAddress);
        mTestLooper.dispatchAll();
    }

+2 −2
Original line number Diff line number Diff line
@@ -104,6 +104,8 @@ public class DevicePowerStatusActionTest {
        mHdmiControlService.setHdmiCecConfig(new FakeHdmiCecConfig(mContextSpy));
        mHdmiControlService.setDeviceConfig(new FakeDeviceConfigWrapper());
        mNativeWrapper = new FakeNativeWrapper();
        mPhysicalAddress = 0x2000;
        mNativeWrapper.setPhysicalAddress(mPhysicalAddress);
        HdmiCecController hdmiCecController = HdmiCecController.createWithNativeWrapper(
                this.mHdmiControlService, mNativeWrapper, mHdmiControlService.getAtomWriter());
        mHdmiControlService.setCecController(hdmiCecController);
@@ -112,8 +114,6 @@ public class DevicePowerStatusActionTest {
        mHdmiControlService.onBootPhase(PHASE_SYSTEM_SERVICES_READY);
        mPowerManager = new FakePowerManagerWrapper(mContextSpy);
        mHdmiControlService.setPowerManager(mPowerManager);
        mPhysicalAddress = 0x2000;
        mNativeWrapper.setPhysicalAddress(mPhysicalAddress);
        mTestLooper.dispatchAll();
        mPlaybackDevice = mHdmiControlService.playback();
        mDevicePowerStatusAction = DevicePowerStatusAction.create(mPlaybackDevice, ADDR_TV,
+2 −1
Original line number Diff line number Diff line
@@ -137,6 +137,7 @@ public class DeviceSelectActionFromPlaybackTest {
        mHdmiControlService.setHdmiCecConfig(new FakeHdmiCecConfig(context));
        mHdmiControlService.setDeviceConfig(new FakeDeviceConfigWrapper());
        mNativeWrapper = new FakeNativeWrapper();
        mNativeWrapper.setPhysicalAddress(0x0000);
        mHdmiCecController = HdmiCecController.createWithNativeWrapper(
                mHdmiControlService, mNativeWrapper, mHdmiControlService.getAtomWriter());
        mHdmiControlService.setCecController(mHdmiCecController);
@@ -150,7 +151,7 @@ public class DeviceSelectActionFromPlaybackTest {

        mHdmiControlService.initService();
        mHdmiControlService.onBootPhase(PHASE_SYSTEM_SERVICES_READY);
        mNativeWrapper.setPhysicalAddress(0x0000);

        mPowerManager = new FakePowerManagerWrapper(context);
        mHdmiControlService.setPowerManager(mPowerManager);
        mTestLooper.dispatchAll();
Loading