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

Commit af88452f authored by Shuzhen Wang's avatar Shuzhen Wang
Browse files

VTS: Cast camera device to lower versions

If the camera device is of a certain version, it can be casted to all lower version
numbers.

Test: VtsHalCameraProviderV2_4TargetTest
Bug: 187010354
Change-Id: Ib9515d898948fb2e04d20b0087d98334fa71def0
parent b7d7e97f
Loading
Loading
Loading
Loading
+17 −10
Original line number Diff line number Diff line
@@ -7155,18 +7155,25 @@ void CameraHidlTest::castDevice(const sp<device::V3_2::ICameraDevice>& device,
                                sp<device::V3_5::ICameraDevice>* device3_5 /*out*/,
                                sp<device::V3_7::ICameraDevice>* device3_7 /*out*/) {
    ASSERT_NE(nullptr, device3_5);
    if (deviceVersion == CAMERA_DEVICE_API_VERSION_3_5) {
        auto castResult = device::V3_5::ICameraDevice::castFrom(device);
        ASSERT_TRUE(castResult.isOk());
        *device3_5 = castResult;
    }

    ASSERT_NE(nullptr, device3_7);
    if (deviceVersion == CAMERA_DEVICE_API_VERSION_3_7) {

    switch (deviceVersion) {
        case CAMERA_DEVICE_API_VERSION_3_7: {
            auto castResult = device::V3_7::ICameraDevice::castFrom(device);
            ASSERT_TRUE(castResult.isOk());
            *device3_7 = castResult;
        }
            [[fallthrough]];
        case CAMERA_DEVICE_API_VERSION_3_5: {
            auto castResult = device::V3_5::ICameraDevice::castFrom(device);
            ASSERT_TRUE(castResult.isOk());
            *device3_5 = castResult;
            break;
        }
        default:
            // no-op
            return;
    }
}

//Cast camera provider to corresponding version if available