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

Commit 3f7e2c4e authored by Peiyong Lin's avatar Peiyong Lin Committed by android-build-merger
Browse files

Merge "Return display capability if getDisplayBrightnessSupport is not...

Merge "Return display capability if getDisplayBrightnessSupport is not registered." into qt-dev am: 248f72a9
am: 2007f2d9

Change-Id: Ia10f9974800e7698754cc7ace9074fa6da99b44f
parents 24b6d02f 2007f2d9
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;