From 905ae9a911ea3d502abda31a8952107965c96295 Mon Sep 17 00:00:00 2001 From: Klaus_q Date: Mon, 21 Feb 2022 20:49:42 +0800 Subject: [PATCH] fix DMS inner temp code Signed-off-by: Klaus_q Change-Id: Ida8b9d4a28dd8748a492b5ca68decab77ed41c87 --- .../include/abstract_display_controller.h | 2 ++ dmserver/include/display_manager_service.h | 1 + dmserver/src/abstract_display_controller.cpp | 21 +++++++++++++++++++ dmserver/src/display_manager_service.cpp | 11 +++++++--- .../src/display_manager_service_inner.cpp | 9 +++++--- 5 files changed, 38 insertions(+), 6 deletions(-) diff --git a/dmserver/include/abstract_display_controller.h b/dmserver/include/abstract_display_controller.h index ed3119a8b9..ba8c227500 100644 --- a/dmserver/include/abstract_display_controller.h +++ b/dmserver/include/abstract_display_controller.h @@ -40,6 +40,8 @@ public: std::shared_ptr GetScreenSnapshot(DisplayId displayId); sptr GetAbstractDisplay(DisplayId displayId) const; + DisplayId GetDisplayIdByScreenId(ScreenId id) const; + std::vector GetAllDisplayIds() const; void AddDisplayForExpandScreen(sptr absScreen); private: diff --git a/dmserver/include/display_manager_service.h b/dmserver/include/display_manager_service.h index ee3dc6d9c8..994f65a992 100644 --- a/dmserver/include/display_manager_service.h +++ b/dmserver/include/display_manager_service.h @@ -86,6 +86,7 @@ public: sptr GetScreenInfoById(ScreenId screenId) override; sptr GetScreenGroupInfoById(ScreenId screenId) override; std::vector> GetAllScreenInfos() override; + std::vector GetAllDisplayIds() const; DMError MakeExpand(std::vector screenId, std::vector startPoint) override; bool SetScreenActiveMode(ScreenId screenId, uint32_t modeId) override; diff --git a/dmserver/src/abstract_display_controller.cpp b/dmserver/src/abstract_display_controller.cpp index d54d6fcab1..2b9859c41f 100644 --- a/dmserver/src/abstract_display_controller.cpp +++ b/dmserver/src/abstract_display_controller.cpp @@ -86,6 +86,27 @@ sptr AbstractDisplayController::GetAbstractDisplay(DisplayId di return iter->second; } +DisplayId AbstractDisplayController::GetDisplayIdByScreenId(ScreenId id) const +{ + for (auto iter = abstractDisplayMap_.begin(); iter != abstractDisplayMap_.end(); iter++) { + if (iter->second->GetAbstractScreenId() != id) { + continue; + } + return iter->first; + } + WLOGFE("Failed to get AbstractDisplayId by screenId %{public}" PRIu64", return nullptr!", id); + return DISPLAY_ID_INVALD; +} + +std::vector AbstractDisplayController::GetAllDisplayIds() const +{ + std::vector res; + for (auto iter = abstractDisplayMap_.begin(); iter != abstractDisplayMap_.end(); iter++) { + res.push_back(iter->first); + } + return res; +} + std::shared_ptr AbstractDisplayController::GetScreenSnapshot(DisplayId displayId) { sptr abstractDisplay = GetAbstractDisplay(displayId); diff --git a/dmserver/src/display_manager_service.cpp b/dmserver/src/display_manager_service.cpp index 0e3c34e080..a46ef7d6b7 100644 --- a/dmserver/src/display_manager_service.cpp +++ b/dmserver/src/display_manager_service.cpp @@ -84,9 +84,9 @@ ScreenId DisplayManagerService::GetScreenIdFromDisplayId(DisplayId displayId) DisplayId DisplayManagerService::GetDefaultDisplayId() { - ScreenId screenId = abstractDisplayController_->GetDefaultScreenId(); - WLOGFI("GetDefaultDisplayId %{public}" PRIu64"", screenId); - return GetDisplayIdFromScreenId(screenId); + ScreenId dmsScreenId = abstractScreenController_->GetDefaultAbstractScreenId(); + WLOGFI("GetDefaultDisplayId %{public}" PRIu64"", dmsScreenId); + return abstractDisplayController_->GetDisplayIdByScreenId(dmsScreenId); } DisplayInfo DisplayManagerService::GetDisplayInfoById(DisplayId displayId) @@ -446,6 +446,11 @@ sptr DisplayManagerService::GetScreenGroupInfoById(ScreenId scr return screenGroup->ConvertToScreenGroupInfo(); } +std::vector DisplayManagerService::GetAllDisplayIds() const +{ + return abstractDisplayController_->GetAllDisplayIds(); +} + std::vector> DisplayManagerService::GetAllScreenInfos() { std::vector screenIds = abstractScreenController_->GetAllScreenIds(); diff --git a/dmserver/src/display_manager_service_inner.cpp b/dmserver/src/display_manager_service_inner.cpp index edaaa5cd4e..96bacf5e38 100644 --- a/dmserver/src/display_manager_service_inner.cpp +++ b/dmserver/src/display_manager_service_inner.cpp @@ -50,14 +50,17 @@ const sptr DisplayManagerServiceInner::GetDisplayById(DisplayId const sptr DisplayManagerServiceInner::GetDefaultDisplay() { + DisplayId defaultDisplayId = GetDefaultDisplayId(); + if (defaultDisplayId == DISPLAY_ID_INVALD) { + WLOGFE("Fail to get default displayId"); + return nullptr; + } return GetDisplayById(GetDefaultDisplayId()); } std::vector DisplayManagerServiceInner::GetAllDisplayIds() { - std::vector res; - res.push_back(GetDefaultDisplayId()); - return res; + return DisplayManagerService::GetInstance().GetAllDisplayIds(); } std::vector> DisplayManagerServiceInner::GetAllDisplays() -- Gitee