Lines Matching refs:absScreen
146 void AbstractDisplayController::OnAbstractScreenConnect(sptr<AbstractScreen> absScreen)
148 if (absScreen == nullptr) {
149 WLOGFE("absScreen is null");
152 WLOGI("connect new screen. id:%{public}" PRIu64"", absScreen->dmsId_);
154 sptr<AbstractScreenGroup> group = absScreen->GetGroup();
160 BindAloneScreenLocked(absScreen);
163 AddScreenToMirrorLocked(absScreen);
166 AddScreenToExpandLocked(absScreen);
172 void AbstractDisplayController::OnAbstractScreenDisconnect(sptr<AbstractScreen> absScreen)
174 if (absScreen == nullptr) {
178 WLOGI("disconnect screen. id:%{public}" PRIu64"", absScreen->dmsId_);
183 screenGroup = absScreen->GetGroup();
190 absDisplayId = ProcessNormalScreenDisconnected(absScreen, screenGroup, abstractDisplay);
192 absDisplayId = ProcessExpandScreenDisconnected(absScreen, screenGroup, abstractDisplay);
216 sptr<AbstractScreen> absScreen, sptr<AbstractScreenGroup> screenGroup, sptr<AbstractDisplay>& absDisplay)
219 if (absScreen == nullptr || screenGroup == nullptr) {
228 if (abstractDisplay->GetAbstractScreenId() == absScreen->dmsId_) {
240 sptr<AbstractScreen> absScreen, sptr<AbstractScreenGroup> screenGroup, sptr<AbstractDisplay>& absDisplay)
243 if (absScreen == nullptr || screenGroup == nullptr) {
250 if (abstractDisplay->GetAbstractScreenId() == absScreen->dmsId_) {
264 void AbstractDisplayController::OnAbstractScreenChange(sptr<AbstractScreen> absScreen, DisplayChangeEvent event)
266 if (absScreen == nullptr) {
270 WLOGI("screen changes. id:%{public}" PRIu64"", absScreen->dmsId_);
272 ProcessDisplayUpdateOrientation(absScreen, DisplayStateChangeType::UPDATE_ROTATION);
274 ProcessDisplayUpdateOrientation(absScreen, DisplayStateChangeType::UPDATE_ROTATION_FROM_WINDOW);
276 ProcessDisplaySizeChange(absScreen);
278 ProcessVirtualPixelRatioChange(absScreen);
280 ProcessDisplayRotationChange(absScreen, DisplayStateChangeType::UPDATE_ROTATION);
282 ProcessDisplayRotationChange(absScreen, DisplayStateChangeType::UPDATE_ROTATION_FROM_WINDOW);
284 WLOGE("unknown screen change event. id:%{public}" PRIu64" event %{public}u", absScreen->dmsId_, event);
288 void AbstractDisplayController::ProcessDisplayRotationChange(sptr<AbstractScreen> absScreen,
291 if (absScreen == nullptr) {
292 WLOGFE("absScreen is nullptr");
295 sptr<AbstractDisplay> abstractDisplay = GetAbstractDisplayByAbsScreen(absScreen);
299 if (abstractDisplay->RequestRotation(absScreen->rotation_)) {
301 ScreenRotationController::ConvertRotationToDisplayOrientation(absScreen->rotation_));
308 ProcessDisplayCompression(absScreen);
311 void AbstractDisplayController::ProcessDisplayCompression(sptr<AbstractScreen> absScreen)
314 auto absDisplay = GetAbstractDisplayByAbsScreen(absScreen);
324 auto mode = absScreen->GetActiveScreenMode();
364 sptr<AbstractDisplay> AbstractDisplayController::GetAbstractDisplayByAbsScreen(sptr<AbstractScreen> absScreen)
370 if (iter->second->GetAbstractScreenId() == absScreen->dmsId_) {
373 abstractDisplay->GetId(), absScreen->dmsId_);
377 sptr<AbstractScreenGroup> group = absScreen->GetGroup();
397 void AbstractDisplayController::ProcessDisplayUpdateOrientation(sptr<AbstractScreen> absScreen,
406 if (abstractDisplay->GetAbstractScreenId() == absScreen->dmsId_) {
408 abstractDisplay->GetId(), absScreen->dmsId_);
413 sptr<AbstractScreenGroup> group = absScreen->GetGroup();
421 WLOGFE("cannot find abstract display of the screen %{public}" PRIu64"", absScreen->dmsId_);
433 abstractDisplay->SetOrientation(absScreen->orientation_);
434 if (abstractDisplay->RequestRotation(absScreen->rotation_)) {
440 void AbstractDisplayController::ProcessDisplaySizeChange(sptr<AbstractScreen> absScreen)
442 HITRACE_METER_FMT(HITRACE_TAG_WINDOW_MANAGER, "dms:ProcessDisplaySizeChange(%" PRIu64")", absScreen->dmsId_);
443 sptr<SupportedScreenModes> info = absScreen->GetActiveScreenMode();
454 if (absDisplay == nullptr || absDisplay->GetAbstractScreenId() != absScreen->dmsId_) {
457 if (UpdateDisplaySize(absDisplay, info, absScreen->startPoint_)) {
522 void AbstractDisplayController::ProcessVirtualPixelRatioChange(sptr<AbstractScreen> absScreen)
530 if (abstractDisplay->GetAbstractScreenId() == absScreen->dmsId_) {
532 abstractDisplay->GetId(), absScreen->dmsId_);
541 abstractDisplay->SetVirtualPixelRatio(absScreen->virtualPixelRatio_);
595 void AbstractDisplayController::AddScreenToMirrorLocked(sptr<AbstractScreen> absScreen)
597 WLOGI("bind display to mirror. screen:%{public}" PRIu64"", absScreen->dmsId_);
600 void AbstractDisplayController::AddScreenToExpandLocked(sptr<AbstractScreen> absScreen)
602 if (absScreen == nullptr) {
603 WLOGE("AddScreenToExpandLocked failed, absScreen is nullptr");
608 if (abstractDisplay->GetAbstractScreenId() == absScreen->dmsId_) {
610 absScreen->dmsId_);
614 WLOGI("bind display to expand. screen:%{public}" PRIu64"", absScreen->dmsId_);
618 if (absScreen->type_ == ScreenType::VIRTUAL) {
627 info = absScreen->GetActiveScreenMode();
634 sptr<AbstractDisplay> display = new AbstractDisplay(displayId, info, absScreen);
635 Point point = abstractScreenController_->GetAbstractScreenGroup(absScreen->groupDmsId_)->
636 GetChildPosition(absScreen->dmsId_);
640 absScreen->dmsId_, display->GetId());