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

am: 248f72a9a0

Change-Id: I105e29926e146e4d7e9c6924fcb4588e57e1400b
This commit is contained in:
Peiyong Lin
2019-05-08 11:28:09 -07:00
committed by android-build-merger
4 changed files with 31 additions and 5 deletions

View File

@@ -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);
}
/**

View File

@@ -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();

View File

@@ -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;

View File

@@ -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;