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

Commit 487785ad authored by Yin-Chia Yeh's avatar Yin-Chia Yeh
Browse files

Camera: hook up dumpState path to dumpsys

Test: try dumpsys on walleye
Bug: 71394073
Change-Id: I9617332c01002c5675bd98c5fc21aac31f1027c4
parent 4f23aa95
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -643,6 +643,14 @@ status_t CameraProviderManager::ProviderInfo::dump(int fd, const Vector<String16
            dprintf(fd, "  API2 camera characteristics:\n");
            info2.dump(fd, /*verbosity*/ 2, /*indentation*/ 4);
        }

        dprintf(fd, "== Camera HAL device %s (v%d.%d) dumpState: ==\n", device->mName.c_str(),
                device->mVersion.get_major(), device->mVersion.get_minor());
        res = device->dumpState(fd);
        if (res != OK) {
            dprintf(fd, "   <Error dumping device %s state: %s (%d)>\n",
                    device->mName.c_str(), strerror(-res), res);
        }
    }
    return OK;
}
@@ -908,6 +916,17 @@ status_t CameraProviderManager::ProviderInfo::DeviceInfo1::getCameraInfo(
    return OK;
}

status_t CameraProviderManager::ProviderInfo::DeviceInfo1::dumpState(int fd) const {
    native_handle_t* handle = native_handle_create(1,0);
    handle->data[0] = fd;
    hardware::Return<Status> s = mInterface->dumpState(handle);
    native_handle_delete(handle);
    if (!s.isOk()) {
        return INVALID_OPERATION;
    }
    return mapToStatusT(s);
}

CameraProviderManager::ProviderInfo::DeviceInfo3::DeviceInfo3(const std::string& name,
        const metadata_vendor_id_t tagId, const std::string &id,
        uint16_t minorVersion,
@@ -1011,6 +1030,17 @@ bool CameraProviderManager::ProviderInfo::DeviceInfo3::isAPI1Compatible() const
    return isBackwardCompatible;
}

status_t CameraProviderManager::ProviderInfo::DeviceInfo3::dumpState(int fd) const {
    native_handle_t* handle = native_handle_create(1,0);
    handle->data[0] = fd;
    auto ret = mInterface->dumpState(handle);
    native_handle_delete(handle);
    if (!ret.isOk()) {
        return INVALID_OPERATION;
    }
    return OK;
}

status_t CameraProviderManager::ProviderInfo::DeviceInfo3::getCameraCharacteristics(
        CameraMetadata *characteristics) const {
    if (characteristics == nullptr) return BAD_VALUE;
+3 −0
Original line number Diff line number Diff line
@@ -293,6 +293,7 @@ private:
            virtual status_t setTorchMode(bool enabled) = 0;
            virtual status_t getCameraInfo(hardware::CameraInfo *info) const = 0;
            virtual bool isAPI1Compatible() const = 0;
            virtual status_t dumpState(int fd) const = 0;
            virtual status_t getCameraCharacteristics(CameraMetadata *characteristics) const {
                (void) characteristics;
                return INVALID_OPERATION;
@@ -326,6 +327,7 @@ private:
            virtual status_t getCameraInfo(hardware::CameraInfo *info) const override;
            //In case of Device1Info assume that we are always API1 compatible
            virtual bool isAPI1Compatible() const override { return true; }
            virtual status_t dumpState(int fd) const override;
            DeviceInfo1(const std::string& name, const metadata_vendor_id_t tagId,
                    const std::string &id, uint16_t minorVersion,
                    const hardware::camera::common::V1_0::CameraResourceCost& resourceCost,
@@ -343,6 +345,7 @@ private:
            virtual status_t setTorchMode(bool enabled) override;
            virtual status_t getCameraInfo(hardware::CameraInfo *info) const override;
            virtual bool isAPI1Compatible() const override;
            virtual status_t dumpState(int fd) const override;
            virtual status_t getCameraCharacteristics(
                    CameraMetadata *characteristics) const override;