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

Commit 0954b1d8 authored by Dominik Laskowski's avatar Dominik Laskowski
Browse files

SF: Move getDisplayIdentificationData to HWC2::Device

The hotplug callback will query it before HWC2::Display creation.

Bug: 74619554
Test: Build
Change-Id: Ib2f8c04cf40274cb4e6f30cd737286ede5010e23
parent 45de9bda
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -124,6 +124,12 @@ uint32_t Device::getMaxVirtualDisplayCount() const
    return mComposer->getMaxVirtualDisplayCount();
}

Error Device::getDisplayIdentificationData(hwc2_display_t hwcDisplayId, uint8_t* outPort,
                                           std::vector<uint8_t>* outData) const {
    auto intError = mComposer->getDisplayIdentificationData(hwcDisplayId, outPort, outData);
    return static_cast<Error>(intError);
}

Error Device::createVirtualDisplay(uint32_t width, uint32_t height,
        PixelFormat* format, Display** outDisplay)
{
@@ -460,11 +466,6 @@ std::vector<std::shared_ptr<const Display::Config>> Display::getConfigs() const
    return configs;
}

Error Display::getIdentificationData(uint8_t* outPort, std::vector<uint8_t>* outData) const {
    auto intError = mComposer.getDisplayIdentificationData(mId, outPort, outData);
    return static_cast<Error>(intError);
}

Error Display::getName(std::string* outName) const
{
    auto intError = mComposer.getDisplayName(mId, outName);
+3 −2
Original line number Diff line number Diff line
@@ -93,6 +93,9 @@ public:
    };

    uint32_t getMaxVirtualDisplayCount() const;
    Error getDisplayIdentificationData(hwc2_display_t hwcDisplayId, uint8_t* outPort,
                                       std::vector<uint8_t>* outData) const;

    Error createVirtualDisplay(uint32_t width, uint32_t height,
            android::ui::PixelFormat* format, Display** outDisplay);
    void destroyDisplay(hwc2_display_t displayId);
@@ -224,8 +227,6 @@ public:
    // Doesn't call into the HWC2 device, so no errors are possible
    std::vector<std::shared_ptr<const Config>> getConfigs() const;

    [[clang::warn_unused_result]] Error getIdentificationData(uint8_t* outPort,
                                                              std::vector<uint8_t>* outData) const;
    [[clang::warn_unused_result]] Error getName(std::string* outName) const;
    [[clang::warn_unused_result]] Error getRequests(
            DisplayRequest* outDisplayRequests,
+1 −6
Original line number Diff line number Diff line
@@ -98,12 +98,7 @@ void HWComposer::registerCallback(HWC2::ComposerCallback* callback,

bool HWComposer::getDisplayIdentificationData(hwc2_display_t hwcDisplayId, uint8_t* outPort,
                                              DisplayIdentificationData* outData) const {
    HWC2::Display* display = mHwcDevice->getDisplayById(hwcDisplayId);
    if (!display) {
        ALOGE("%s: Attempted to access invalid display %" PRIu64, __FUNCTION__, hwcDisplayId);
        return false;
    }
    const auto error = display->getIdentificationData(outPort, outData);
    const auto error = mHwcDevice->getDisplayIdentificationData(hwcDisplayId, outPort, outData);
    if (error != HWC2::Error::None) {
        ALOGE("%s failed for display %" PRIu64, __FUNCTION__, hwcDisplayId);
        return false;