mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 15:58:43 +00:00
Merge changes from topic "evs-v2" into udc-dev
* changes: Add VTS testcases for getDisplayStateById Uprev the EVS AIDL NDK Version
This commit is contained in:
@@ -22,7 +22,7 @@ cc_defaults {
|
||||
name: "EvsHalDefaults",
|
||||
defaults: ["android.hardware.graphics.common-ndk_static"],
|
||||
static_libs: [
|
||||
"android.hardware.automotive.evs-V1-ndk",
|
||||
"android.hardware.automotive.evs-V2-ndk",
|
||||
"android.hardware.common-V2-ndk",
|
||||
],
|
||||
shared_libs: [
|
||||
|
||||
@@ -38,7 +38,7 @@ cc_binary {
|
||||
],
|
||||
srcs: [
|
||||
":libgui_frame_event_aidl",
|
||||
"src/*.cpp"
|
||||
"src/*.cpp",
|
||||
],
|
||||
shared_libs: [
|
||||
"android.hardware.graphics.bufferqueue@1.0",
|
||||
@@ -61,7 +61,7 @@ cc_binary {
|
||||
],
|
||||
static_libs: [
|
||||
"android.frameworks.automotive.display-V1-ndk",
|
||||
"android.hardware.automotive.evs-V1-ndk",
|
||||
"android.hardware.automotive.evs-V2-ndk",
|
||||
"android.hardware.common-V2-ndk",
|
||||
"libaidlcommonsupport",
|
||||
"libcutils",
|
||||
|
||||
@@ -52,6 +52,7 @@ class EvsEnumerator final : public ::aidl::android::hardware::automotive::evs::B
|
||||
ndk::ScopedAStatus closeDisplay(const std::shared_ptr<evs::IEvsDisplay>& obj) override;
|
||||
ndk::ScopedAStatus getDisplayIdList(std::vector<uint8_t>* list) override;
|
||||
ndk::ScopedAStatus getDisplayState(evs::DisplayState* state) override;
|
||||
ndk::ScopedAStatus getDisplayStateById(int32_t displayId, evs::DisplayState* state) override;
|
||||
ndk::ScopedAStatus registerStatusCallback(
|
||||
const std::shared_ptr<evs::IEvsEnumeratorStatusCallback>& callback) override;
|
||||
ndk::ScopedAStatus openUltrasonicsArray(
|
||||
@@ -101,6 +102,8 @@ class EvsEnumerator final : public ::aidl::android::hardware::automotive::evs::B
|
||||
bool checkPermission();
|
||||
void closeCamera_impl(const std::shared_ptr<evs::IEvsCamera>& pCamera,
|
||||
const std::string& cameraId);
|
||||
ndk::ScopedAStatus getDisplayStateImpl(std::optional<int32_t> displayId,
|
||||
evs::DisplayState* state);
|
||||
|
||||
static bool qualifyCaptureDevice(const char* deviceName);
|
||||
static CameraRecord* findCameraById(const std::string& cameraId);
|
||||
|
||||
@@ -357,24 +357,32 @@ ScopedAStatus EvsEnumerator::closeDisplay(const std::shared_ptr<IEvsDisplay>& ob
|
||||
|
||||
ScopedAStatus EvsEnumerator::getDisplayState(DisplayState* state) {
|
||||
LOG(DEBUG) << __FUNCTION__;
|
||||
return getDisplayStateImpl(std::nullopt, state);
|
||||
}
|
||||
|
||||
ScopedAStatus EvsEnumerator::getDisplayStateById(int32_t displayId, DisplayState* state) {
|
||||
LOG(DEBUG) << __FUNCTION__;
|
||||
return getDisplayStateImpl(displayId, state);
|
||||
}
|
||||
|
||||
ScopedAStatus EvsEnumerator::getDisplayStateImpl(std::optional<int32_t> displayId,
|
||||
DisplayState* state) {
|
||||
if (!checkPermission()) {
|
||||
*state = DisplayState::DEAD;
|
||||
return ScopedAStatus::fromServiceSpecificError(
|
||||
static_cast<int>(EvsResult::PERMISSION_DENIED));
|
||||
}
|
||||
|
||||
// TODO(b/262779341): For now we can just return the state of the 1st display. Need to update
|
||||
// the API later.
|
||||
|
||||
const auto& all_displays = mutableActiveDisplays().getAllDisplays();
|
||||
|
||||
// Do we still have a display object we think should be active?
|
||||
if (all_displays.empty()) {
|
||||
const auto display_search = displayId ? all_displays.find(*displayId) : all_displays.begin();
|
||||
|
||||
if (display_search == all_displays.end()) {
|
||||
*state = DisplayState::NOT_OPEN;
|
||||
return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::OWNERSHIP_LOST));
|
||||
}
|
||||
|
||||
std::shared_ptr<IEvsDisplay> pActiveDisplay = all_displays.begin()->second.displayWeak.lock();
|
||||
std::shared_ptr<IEvsDisplay> pActiveDisplay = display_search->second.displayWeak.lock();
|
||||
if (pActiveDisplay) {
|
||||
return pActiveDisplay->getDisplayState(state);
|
||||
} else {
|
||||
|
||||
@@ -14,18 +14,17 @@
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
package{
|
||||
package {
|
||||
// See: http://go/android-license-faq
|
||||
// A large-scale-change added 'default_applicable_licenses' to import
|
||||
// all of the 'license_kinds' from "hardware_interfaces_license"
|
||||
// to get the below license kinds:
|
||||
// SPDX-license-identifier-Apache-2.0
|
||||
default_applicable_licenses : ["hardware_interfaces_license"],
|
||||
default_applicable_licenses: ["hardware_interfaces_license"],
|
||||
}
|
||||
|
||||
cc_test {
|
||||
name:
|
||||
"VtsHalEvsTargetTest",
|
||||
name: "VtsHalEvsTargetTest",
|
||||
srcs: [
|
||||
"*.cpp",
|
||||
],
|
||||
@@ -42,7 +41,7 @@ name:
|
||||
],
|
||||
static_libs: [
|
||||
"android.hardware.automotive.evs@common-default-lib",
|
||||
"android.hardware.automotive.evs-V1-ndk",
|
||||
"android.hardware.automotive.evs-V2-ndk",
|
||||
"android.hardware.common-V2-ndk",
|
||||
"libaidlcommonsupport",
|
||||
],
|
||||
|
||||
@@ -2273,6 +2273,10 @@ TEST_P(EvsAidlTest, DisplayStates) {
|
||||
DisplayState state;
|
||||
EXPECT_FALSE(mEnumerator->getDisplayState(&state).isOk());
|
||||
}
|
||||
for (const auto displayIdToQuery : displayIds) {
|
||||
DisplayState state;
|
||||
EXPECT_FALSE(mEnumerator->getDisplayStateById(displayIdToQuery, &state).isOk());
|
||||
}
|
||||
|
||||
// Scope to limit the lifetime of the pDisplay pointer, and thus the IEvsDisplay object.
|
||||
{
|
||||
@@ -2285,6 +2289,15 @@ TEST_P(EvsAidlTest, DisplayStates) {
|
||||
EXPECT_TRUE(mEnumerator->getDisplayState(&state).isOk());
|
||||
EXPECT_EQ(state, DisplayState::NOT_VISIBLE);
|
||||
}
|
||||
for (const auto displayIdToQuery : displayIds) {
|
||||
DisplayState state;
|
||||
if (displayIdToQuery == displayId) {
|
||||
EXPECT_TRUE(mEnumerator->getDisplayStateById(displayIdToQuery, &state).isOk());
|
||||
EXPECT_EQ(state, DisplayState::NOT_VISIBLE);
|
||||
} else {
|
||||
EXPECT_FALSE(mEnumerator->getDisplayStateById(displayIdToQuery, &state).isOk());
|
||||
}
|
||||
}
|
||||
|
||||
// Activate the display.
|
||||
EXPECT_TRUE(pDisplay->setDisplayState(DisplayState::VISIBLE_ON_NEXT_FRAME).isOk());
|
||||
@@ -2298,6 +2311,15 @@ TEST_P(EvsAidlTest, DisplayStates) {
|
||||
EXPECT_TRUE(pDisplay->getDisplayState(&state).isOk());
|
||||
EXPECT_EQ(state, DisplayState::VISIBLE_ON_NEXT_FRAME);
|
||||
}
|
||||
for (const auto displayIdToQuery : displayIds) {
|
||||
DisplayState state;
|
||||
if (displayIdToQuery == displayId) {
|
||||
EXPECT_TRUE(mEnumerator->getDisplayStateById(displayIdToQuery, &state).isOk());
|
||||
EXPECT_EQ(state, DisplayState::VISIBLE_ON_NEXT_FRAME);
|
||||
} else {
|
||||
EXPECT_FALSE(mEnumerator->getDisplayStateById(displayIdToQuery, &state).isOk());
|
||||
}
|
||||
}
|
||||
|
||||
// Get the output buffer we'd use to display the imagery.
|
||||
BufferDesc tgtBuffer;
|
||||
@@ -2319,6 +2341,15 @@ TEST_P(EvsAidlTest, DisplayStates) {
|
||||
EXPECT_TRUE(pDisplay->getDisplayState(&state).isOk());
|
||||
EXPECT_EQ(state, DisplayState::VISIBLE);
|
||||
}
|
||||
for (const auto displayIdToQuery : displayIds) {
|
||||
DisplayState state;
|
||||
if (displayIdToQuery == displayId) {
|
||||
EXPECT_TRUE(mEnumerator->getDisplayStateById(displayIdToQuery, &state).isOk());
|
||||
EXPECT_EQ(state, DisplayState::VISIBLE);
|
||||
} else {
|
||||
EXPECT_FALSE(mEnumerator->getDisplayStateById(displayIdToQuery, &state).isOk());
|
||||
}
|
||||
}
|
||||
|
||||
// Turn off the display.
|
||||
EXPECT_TRUE(pDisplay->setDisplayState(DisplayState::NOT_VISIBLE).isOk());
|
||||
@@ -2333,6 +2364,15 @@ TEST_P(EvsAidlTest, DisplayStates) {
|
||||
EXPECT_TRUE(pDisplay->getDisplayState(&state).isOk());
|
||||
EXPECT_EQ(state, DisplayState::NOT_VISIBLE);
|
||||
}
|
||||
for (const auto displayIdToQuery : displayIds) {
|
||||
DisplayState state;
|
||||
if (displayIdToQuery == displayId) {
|
||||
EXPECT_TRUE(mEnumerator->getDisplayStateById(displayIdToQuery, &state).isOk());
|
||||
EXPECT_EQ(state, DisplayState::NOT_VISIBLE);
|
||||
} else {
|
||||
EXPECT_FALSE(mEnumerator->getDisplayStateById(displayIdToQuery, &state).isOk());
|
||||
}
|
||||
}
|
||||
|
||||
// Close the display.
|
||||
mEnumerator->closeDisplay(pDisplay);
|
||||
@@ -2348,6 +2388,10 @@ TEST_P(EvsAidlTest, DisplayStates) {
|
||||
DisplayState state;
|
||||
EXPECT_FALSE(mEnumerator->getDisplayState(&state).isOk());
|
||||
}
|
||||
for (const auto displayIdToQuery : displayIds) {
|
||||
DisplayState state;
|
||||
EXPECT_FALSE(mEnumerator->getDisplayStateById(displayIdToQuery, &state).isOk());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user