mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Merge "Return display capability if getDisplayBrightnessSupport is not registered." into qt-dev
am: 248f72a9a0
Change-Id: I105e29926e146e4d7e9c6924fcb4588e57e1400b
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user