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

Commit 248f72a9 authored by Peiyong Lin's avatar Peiyong Lin Committed by Android (Google) Code Review
Browse files

Merge "Return display capability if getDisplayBrightnessSupport is not registered." into qt-dev

parents a51399ef 0686afa1
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -246,7 +246,19 @@ TEST_F(GraphicsComposerHidlCommandTest, SET_LAYER_PER_FRAME_METADATA) {
 * Test IComposerClient::getPerFrameMetadataKeys.
 */
TEST_F(GraphicsComposerHidlTest, GetPerFrameMetadataKeys) {
    mComposerClient->getPerFrameMetadataKeys(mPrimaryDisplay);
    std::vector<IComposerClient::PerFrameMetadataKey> keys;
    Error error = Error::NONE;
    mComposerClient->getRaw()->getPerFrameMetadataKeys(
            mPrimaryDisplay, [&](const auto& tmpError, const auto& tmpKeys) {
                error = tmpError;
                keys = tmpKeys;
            });
    if (error == Error::UNSUPPORTED) {
        GTEST_SUCCEED() << "getPerFrameMetadataKeys is not supported";
        return;
    }
    ASSERT_EQ(Error::NONE, error);
    ASSERT_TRUE(keys.size() >= 0);
}

/**
+1 −1
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ class ComposerClientImpl : public V2_2::hal::detail::ComposerClientImpl<Interfac

    Return<void> getDisplayCapabilities(
        Display display, IComposerClient::getDisplayCapabilities_cb hidl_cb) override {
        hidl_vec<IComposerClient::DisplayCapability> capabilities;
        std::vector<IComposerClient::DisplayCapability> capabilities;
        Error error = mHal->getDisplayCapabilities(display, &capabilities);
        hidl_cb(error, capabilities);
        return Void();
+1 −1
Original line number Diff line number Diff line
@@ -115,7 +115,7 @@ class ComposerHal : public V2_2::hal::ComposerHal {
                                            hidl_vec<uint64_t>& sampleComponent2,
                                            hidl_vec<uint64_t>& sampleComponent3) = 0;
    virtual Error getDisplayCapabilities(
        Display display, hidl_vec<IComposerClient::DisplayCapability>* outCapabilities) = 0;
            Display display, std::vector<IComposerClient::DisplayCapability>* outCapabilities) = 0;
    virtual Error setLayerPerFrameMetadataBlobs(
        Display display, Layer layer,
        std::vector<IComposerClient::PerFrameMetadataBlob>& blobs) = 0;
+16 −2
Original line number Diff line number Diff line
@@ -220,7 +220,8 @@ class HwcHalImpl : public V2_2::passthrough::detail::HwcHalImpl<Hal> {
    }

    Error getDisplayCapabilities(
        Display display, hidl_vec<IComposerClient::DisplayCapability>* outCapabilities) override {
            Display display,
            std::vector<IComposerClient::DisplayCapability>* outCapabilities) override {
        uint32_t count = 0;
        int32_t error = mDispatch.getDisplayCapabilities(mDevice, display, &count, nullptr);
        if (error != HWC2_ERROR_NONE) {
@@ -232,7 +233,7 @@ class HwcHalImpl : public V2_2::passthrough::detail::HwcHalImpl<Hal> {
            reinterpret_cast<std::underlying_type<IComposerClient::DisplayCapability>::type*>(
                outCapabilities->data()));
        if (error != HWC2_ERROR_NONE) {
            *outCapabilities = hidl_vec<IComposerClient::DisplayCapability>();
            *outCapabilities = std::vector<IComposerClient::DisplayCapability>();
            return static_cast<Error>(error);
        }
        return Error::NONE;
@@ -267,6 +268,19 @@ class HwcHalImpl : public V2_2::passthrough::detail::HwcHalImpl<Hal> {

    Error getDisplayBrightnessSupport(Display display, bool* outSupport) {
        if (!mDispatch.getDisplayBrightnessSupport) {
            // Preemptively set to false.
            *outSupport = false;
            // Try to query from getDisplayCapabilities.
            std::vector<IComposerClient::DisplayCapability> capabilities;
            Error error = getDisplayCapabilities(display, &capabilities);
            if (error != Error::NONE) {
                // This function is not registered, always return UNSUPPORTED.
                return Error::UNSUPPORTED;
            }
            *outSupport =
                    std::find(capabilities.begin(), capabilities.end(),
                              IComposerClient::DisplayCapability::BRIGHTNESS) != capabilities.end();
            // This function is not registered, always return UNSUPPORTED.
            return Error::UNSUPPORTED;
        }
        bool support = false;