Lines Matching refs:screen
58 WLOGFI("screen controller init");
107 sptr<AbstractScreen> screen = GetAbstractScreen(dmsScreenId);
108 if (screen == nullptr) {
109 WLOGFE("screen is nullptr");
112 if (screen->rsDisplayNode_ == nullptr) {
116 WLOGI("GetRSDisplayNodeByScreenId: screen: %{public}" PRIu64", nodeId: %{public}" PRIu64" ",
117 screen->dmsId_, screen->rsDisplayNode_->GetId());
118 return screen->rsDisplayNode_;
173 WLOGE("did not find screen:%{public}" PRIu64"", dmsScreenId);
184 WLOGE("did not find screen:%{public}" PRIu64"", dmsScreenId);
202 WLOGFD("GetDefaultAbstractScreenId, screen:%{public}" PRIu64"", defaultDmsScreenId);
205 WLOGFI("GetDefaultAbstractScreenId, default screen is null, try to get.");
239 WLOGFI("RS screen event. rsScreenId:%{public}" PRIu64", defaultRsScreenId_:%{public}" PRIu64", event:%{public}u",
264 WLOGFE("disconnect screen, rsScreenId=%{public}" PRIu64" is not in rs2DmsScreenIdMap_", rsScreenId);
271 auto screen = dmsScreenMapIter->second;
272 if (screen == nullptr) {
273 WLOGFE("screen is nullptr");
276 auto groupDmsId = screen->lastGroupDmsId_;
288 if (!screenGroup->AddChild(screen, point)) {
289 WLOGE("fail to add screen to group. screen: %{public}" PRIu64"", screen->dmsId_);
293 // Recover default screen, set power state again
298 WLOGFE("can't find screen in dmsScreenMap, dmsScreenId: %{public}" PRIu64"", dmsScreenId);
307 WLOGFD("reconnect screen, screenId=%{public}" PRIu64"", rsScreenId);
322 WLOGFD("set default rotation to %{public}d for buildin screen", rotationAfter);
384 WLOGFE("disconnect screen, rsScreenId=%{public}" PRIu64" is not in rs2DmsScreenIdMap_", rsScreenId);
387 WLOGFI("disconnect screen, rsScreenId= %{public}" PRIu64", dmsScreenId= %{public}" PRIu64"",
392 auto screen = dmsScreenMapIter->second;
393 if (abstractScreenCallback_ != nullptr && CheckScreenInScreenGroup(screen)) {
395 // Disconnect default screen
396 RemoveDefaultScreenFromGroupLocked(screen);
399 abstractScreenCallback_->onDisconnect_(screen);
401 screenGroup = RemoveFromGroupLocked(screen);
403 NotifyScreenGroupChanged(screen->ConvertToScreenInfo(), ScreenGroupChangeEvent::REMOVE_FROM_GROUP);
408 screen->dmsId_ == screenGroup->mirrorScreenId_ && screenGroup->GetChildCount() != 0) {
426 WLOGE("supported screen mode is 0, screenId=%{public}" PRIu64"", absScreen->rsId_);
440 WLOGD("fill screen idx:%{public}d w/h:%{public}d/%{public}d",
444 WLOGD("fill screen activeModeId:%{public}d", activeModeId);
458 WLOGFI("connect the first screen");
466 void AbstractScreenController::RemoveDefaultScreenFromGroupLocked(sptr<AbstractScreen> screen)
469 if (screen == nullptr) {
472 auto groupDmsId = screen->groupDmsId_;
482 auto rsScreenId = screen->rsId_;
483 bool res = screenGroup->RemoveDefaultScreen(screen);
489 sptr<AbstractScreenGroup> AbstractScreenController::RemoveFromGroupLocked(sptr<AbstractScreen> screen)
492 if (screen == nullptr) {
495 auto groupDmsId = screen->groupDmsId_;
502 if (!RemoveChildFromGroup(screen, screenGroup)) {
509 bool AbstractScreenController::RemoveChildFromGroup(sptr<AbstractScreen> screen, sptr<AbstractScreenGroup> screenGroup)
511 bool res = screenGroup->RemoveChild(screen);
513 WLOGFE("remove screen:%{public}" PRIu64" failed from screenGroup:%{public}" PRIu64".",
514 screen->dmsId_, screen->groupDmsId_);
526 bool AbstractScreenController::CheckScreenInScreenGroup(sptr<AbstractScreen> screen) const
529 auto groupDmsId = screen->groupDmsId_;
536 return screenGroup->HasChild(screen->dmsId_);
563 WLOGE("fail to add screen to group. screen=%{public}" PRIu64"", newScreen->dmsId_);
569 WLOGE("group screen existed. id=%{public}" PRIu64"", dmsGroupScreenId);
575 WLOGI("connect new group screen, screenId: %{public}" PRIu64", screenGroupId: %{public}" PRIu64", "
589 auto screen = iter->second;
590 auto screenGroupIter = dmsScreenGroupMap_.find(screen->groupDmsId_);
593 screen->groupDmsId_);
737 WLOGD("set orientation. screen %{public}" PRIu64" orientation %{public}u", screenId, newOrientation);
738 auto screen = GetAbstractScreen(screenId);
739 if (screen == nullptr) {
740 WLOGFE("fail to set orientation, cannot find screen %{public}" PRIu64"", screenId);
743 if (screen->isScreenGroup_) {
744 WLOGE("cannot set orientation to the combination. screen: %{public}" PRIu64"", screenId);
749 newOrientation = screen->screenRequestedOrientation_;
753 screen->screenRequestedOrientation_ = newOrientation;
755 if (screen->orientation_ == newOrientation) {
756 WLOGFD("skip setting orientation. screen %{public}" PRIu64" orientation %{public}u", screenId, newOrientation);
762 Rotation rotationAfter = screen->CalcRotation(newOrientation);
764 screen->rotation_ = rotationAfter;
766 if (!screen->SetOrientation(newOrientation)) {
767 WLOGE("fail to set rotation, screen %{public}" PRIu64"", screenId);
772 NotifyScreenChanged(screen->ConvertToScreenInfo(), ScreenChangeEvent::UPDATE_ORIENTATION);
776 abstractScreenCallback_->onChange_(screen, DisplayChangeEvent::UPDATE_ORIENTATION_FROM_WINDOW);
778 abstractScreenCallback_->onChange_(screen, DisplayChangeEvent::UPDATE_ORIENTATION);
782 auto screenGroup = screen->GetGroup();
808 for (auto& screen : screens) {
809 auto mode = screen->GetActiveScreenMode();
811 WLOGE("no active screen mode");
815 if (screen->startPoint_.posX_ != point.posX_) {
816 screen->UpdateRSDisplayNode(point);
818 abstractScreenCallback_->onChange_(screen, DisplayChangeEvent::DISPLAY_SIZE_CHANGED);
822 if (screen->rotation_ == Rotation::ROTATION_90 ||
823 screen->rotation_ == Rotation::ROTATION_270) {
834 sptr<AbstractScreen>& screen, ScreenId screenId, Rotation rotationAfter, bool withAnimation)
836 sptr<SupportedScreenModes> abstractScreenModes = screen->GetActiveScreenMode();
851 if (rotationAfter == Rotation::ROTATION_0 && screen->rotation_ == Rotation::ROTATION_270) {
855 } else if (rotationAfter == Rotation::ROTATION_270 && screen->rotation_ == Rotation::ROTATION_0) {
925 auto screen = GetAbstractScreen(screenId);
926 if (screen == nullptr) {
927 WLOGFE("SetRotation error, cannot get screen with screenId: %{public}" PRIu64, screenId);
930 if (rotationAfter == screen->rotation_) {
931 WLOGFD("rotation not changed. screen %{public}" PRIu64" rotation %{public}u", screenId, rotationAfter);
936 SetScreenRotateAnimation(screen, screenId, rotationAfter, withAnimation);
937 screen->rotation_ = rotationAfter;
940 NotifyScreenChanged(screen->ConvertToScreenInfo(), ScreenChangeEvent::UPDATE_ROTATION);
944 abstractScreenCallback_->onChange_(screen, DisplayChangeEvent::UPDATE_ROTATION_FROM_WINDOW);
946 abstractScreenCallback_->onChange_(screen, DisplayChangeEvent::UPDATE_ROTATION);
955 sptr<AbstractScreen> screen = GetAbstractScreen(screenId);
956 if (screen == nullptr) {
959 return screen->GetScreenSupportedColorGamuts(colorGamuts);
964 sptr<AbstractScreen> screen = GetAbstractScreen(screenId);
965 if (screen == nullptr) {
968 return screen->GetScreenColorGamut(colorGamut);
973 sptr<AbstractScreen> screen = GetAbstractScreen(screenId);
974 if (screen == nullptr) {
977 return screen->SetScreenColorGamut(colorGamutIdx);
982 sptr<AbstractScreen> screen = GetAbstractScreen(screenId);
983 if (screen == nullptr) {
986 return screen->GetScreenGamutMap(gamutMap);
991 sptr<AbstractScreen> screen = GetAbstractScreen(screenId);
992 if (screen == nullptr) {
995 return screen->SetScreenGamutMap(gamutMap);
1000 sptr<AbstractScreen> screen = GetAbstractScreen(screenId);
1001 if (screen == nullptr) {
1004 return screen->SetScreenColorTransform();
1017 auto screen = GetAbstractScreen(screenId);
1018 if (screen == nullptr) {
1028 usedModeId = static_cast<uint32_t>(screen->activeIdx_);
1029 screen->activeIdx_ = static_cast<int32_t>(modeId);
1057 WLOGFE("screen is nullptr. dmsScreenId=%{public}" PRIu64"", dmsScreenId);
1062 WLOGFE("active screen mode is nullptr. dmsScreenId=%{public}" PRIu64"",
1082 sptr<AbstractScreen> screen = GetAbstractScreen(screenId);
1083 if (screen == nullptr || screen->type_ != ScreenType::REAL) {
1084 WLOGFE("screen is nullptr, or screenType is not real.");
1088 auto group = GetAbstractScreenGroup(screen->groupDmsId_);
1091 group = AddToGroupLocked(screen);
1096 NotifyScreenGroupChanged(screen->ConvertToScreenInfo(), ScreenGroupChangeEvent::ADD_TO_GROUP);
1098 abstractScreenCallback_->onConnect_(screen);
1106 group->combination_ == ScreenCombination::SCREEN_MIRROR && group->mirrorScreenId_ == screen->dmsId_;
1107 group->mirrorScreenId_ = screen->dmsId_;
1118 auto screen = GetAbstractScreen(screenId);
1119 if (screen == nullptr) {
1120 WLOGFW("screen:%{public}" PRIu64" is nullptr", screenId);
1123 auto iter = dmsScreenGroupMap_.find(screen->groupDmsId_);
1125 WLOGFW("groupDmsId:%{public}" PRIu64"is not in dmsScreenGroupMap_", screen->groupDmsId_);
1130 WLOGFW("screenGroup:%{public}" PRIu64" is nullptr", screen->groupDmsId_);
1134 WLOGFW("try to stop screen in another combination");
1138 screen->dmsId_ == screenGroup->mirrorScreenId_) {
1139 WLOGFW("try to stop main mirror screen");
1143 if (abstractScreenCallback_ != nullptr && CheckScreenInScreenGroup(screen)) {
1144 abstractScreenCallback_->onDisconnect_(screen);
1146 bool res = RemoveChildFromGroup(screen, screenGroup);
1148 NotifyScreenGroupChanged(screen->ConvertToScreenInfo(), ScreenGroupChangeEvent::REMOVE_FROM_GROUP);
1164 auto screen = GetAbstractScreen(screenId);
1165 if (screen == nullptr) {
1166 WLOGFE("screen:%{public}" PRIu64" is nullptr", screenId);
1169 WLOGFI("Screen->groupDmsId_: %{public}" PRIu64"", screen->groupDmsId_);
1170 if (filterScreen && screen->groupDmsId_ == group->dmsId_ && group->HasChild(screen->dmsId_)) {
1173 if (abstractScreenCallback_ != nullptr && CheckScreenInScreenGroup(screen)) {
1174 abstractScreenCallback_->onDisconnect_(screen);
1176 auto originGroup = RemoveFromGroupLocked(screen);
1194 sptr<AbstractScreen> screen = GetAbstractScreen(screenId);
1195 if (screen == nullptr) {
1200 screen->dmsId_, expandPoint.posX_, expandPoint.posY_);
1201 bool addChildRes = group->AddChild(screen, expandPoint);
1203 changeGroup.emplace_back(screen->ConvertToScreenInfo());
1207 removeFromGroup.emplace_back(screen->ConvertToScreenInfo());
1210 addToGroup.emplace_back(screen->ConvertToScreenInfo());
1215 abstractScreenCallback_->onConnect_(screen);
1249 auto screen = GetAbstractScreen(screenId);
1250 if (screen == nullptr || screen->type_ != ScreenType::VIRTUAL) {
1253 auto originGroup = GetAbstractScreenGroup(screen->groupDmsId_);
1260 if (abstractScreenCallback_ != nullptr && CheckScreenInScreenGroup(screen)) {
1261 abstractScreenCallback_->onDisconnect_(screen);
1263 RemoveFromGroupLocked(screen);
1264 removeFromGroup.emplace_back(screen->ConvertToScreenInfo());
1433 WLOGFI("no screen info");
1457 auto screen = GetAbstractScreen(screenId);
1458 if (screen == nullptr) {
1461 if (screen->type_ != ScreenType::REAL) {
1462 WLOGD("skip virtual screen %{public}" PRIu64"", screen->dmsId_);
1465 RSInterfaces::GetInstance().SetScreenPowerStatus(screen->rsId_, status);
1466 WLOGFI("set screen power status. rsscreen %{public}" PRIu64", status %{public}u", screen->rsId_, status);
1471 WLOGFI("no real screen");
1490 WLOGFI("find screen %{public}" PRIu64"", dmsScreenId);
1496 WLOGFW("not find screen, retry %{public}u times", retryTimes);
1500 WLOGFE("cannot find screen %{public}" PRIu64"", dmsScreenId);
1512 WLOGD("set virtual pixel ratio. screen %{public}" PRIu64" virtualPixelRatio %{public}f",
1514 auto screen = GetAbstractScreen(screenId);
1515 if (screen == nullptr) {
1516 WLOGFE("fail to set virtual pixel ratio, cannot find screen %{public}" PRIu64"", screenId);
1519 if (screen->isScreenGroup_) {
1520 WLOGE("cannot set virtual pixel ratio to the combination. screen: %{public}" PRIu64"", screenId);
1523 if (fabs(screen->virtualPixelRatio_ - virtualPixelRatio) < 1e-6) { // less to 1e-6 mean equal
1527 screen->SetVirtualPixelRatio(virtualPixelRatio);
1530 abstractScreenCallback_->onChange_(screen, DisplayChangeEvent::DISPLAY_VIRTUAL_PIXEL_RATIO_CHANGED);
1532 NotifyScreenChanged(screen->ConvertToScreenInfo(), ScreenChangeEvent::VIRTUAL_PIXEL_RATIO_CHANGED);