diff --git a/dmserver/include/abstract_screen_controller.h b/dmserver/include/abstract_screen_controller.h index a3818dd82959464a92a9c3f4ced157e2dcacee56..4de2b39f07d07616794023695efbbc697f816f3c 100644 --- a/dmserver/include/abstract_screen_controller.h +++ b/dmserver/include/abstract_screen_controller.h @@ -42,6 +42,7 @@ public: ~AbstractScreenController(); void Init(); + void ScreenConnectionInDisplayInit(sptr abstractScreenCallback); std::vector GetAllScreenIds(); sptr GetAbstractScreen(ScreenId dmsScreenId) const; std::vector GetShotScreenIds(std::vector) const; diff --git a/dmserver/src/abstract_display_controller.cpp b/dmserver/src/abstract_display_controller.cpp index 568a23343e47aabe8632536c2072a21abc3b8511..aa9899e868a8f74ca19948806cab303fc659f3a5 100644 --- a/dmserver/src/abstract_display_controller.cpp +++ b/dmserver/src/abstract_display_controller.cpp @@ -52,6 +52,7 @@ void AbstractDisplayController::Init(sptr abstractScre abstractScreenCallback_->onChange_ = std::bind(&AbstractDisplayController::OnAbstractScreenChange, this, std::placeholders::_1, std::placeholders::_2); + abstractScreenController_->ScreenConnectionInDisplayInit(abstractScreenCallback_); abstractScreenController->RegisterAbstractScreenCallback(abstractScreenCallback_); // TODO: Active the code after "rsDisplayNode_->SetScreenId(rsScreenId)" is provided. diff --git a/dmserver/src/abstract_screen_controller.cpp b/dmserver/src/abstract_screen_controller.cpp index 31ccbf4e77fabd17dc2c8f1ef8f9949dd0a85cee..f0619ad2db037e8bcc567580f5439c42eb7fd7cc 100644 --- a/dmserver/src/abstract_screen_controller.cpp +++ b/dmserver/src/abstract_screen_controller.cpp @@ -234,6 +234,20 @@ void AbstractScreenController::OnRsScreenConnectionChange(ScreenId rsScreenId, S } } +void AbstractScreenController::ScreenConnectionInDisplayInit(sptr abstractScreenCallback) +{ + std::lock_guard lock(mutex_); + if (dmsScreenMap_.empty()) { + return; + } + for (auto& iter : dmsScreenMap_) { + if (iter.second != nullptr && abstractScreenCallback != nullptr) { + WLOGFI("dmsScreenId :%{public}" PRIu64"", iter.first); + abstractScreenCallback->onConnect_(iter.second); + } + } +} + void AbstractScreenController::ProcessScreenModeChanged(ScreenId rsScreenId) { WM_SCOPED_TRACE("dms:ProcessScreenModeChanged(%" PRIu64")", rsScreenId);