• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef MULTI_SCREEN_CHANGE_UTILS_H
17 #define MULTI_SCREEN_CHANGE_UTILS_H
18 
19 #include <screen_manager/screen_types.h>
20 #include "session/screen/include/screen_session.h"
21 #include "zidl/screen_session_manager_client_interface.h"
22 
23 namespace OHOS {
24 namespace Rosen {
25 class MultiScreenChangeUtils {
26 public:
27     MultiScreenChangeUtils() = delete;
28 
29     static void ScreenDensityChangeNotify(sptr<ScreenSession> innerScreen,
30         sptr<ScreenSession> externalScreen);
31 
32     static void ScreenPropertyChangeNotify(sptr<ScreenSession>& innerScreen,
33         sptr<ScreenSession>& externalScreen);
34 
35     static void ScreenExtendPositionChange(sptr<ScreenSession>& innerScreen,
36         sptr<ScreenSession>& externalScreen);
37 
38     static void SetScreenAvailableStatus(sptr<ScreenSession>& screenScreen,
39         bool isScreenAvailable);
40 
41     static void SetExternalScreenOffScreenRendering(sptr<ScreenSession>& innerScreen,
42         sptr<ScreenSession>& externalScreen);
43 
44     static void ScreenCombinationChange(sptr<ScreenSession>& innerScreen, sptr<ScreenSession>& externalScreen,
45         ScreenCombination externalCombination);
46 
47     static void ScreenMainPositionChange(sptr<ScreenSession>& innerScreen,
48         sptr<ScreenSession>& externalScreen);
49 
50     static void ScreenPhysicalInfoChange(sptr<ScreenSession>& innerScreen,
51         sptr<ScreenSession>& externalScreen);
52 
53     static void CreateMirrorSession(sptr<ScreenSession>& mainSession,
54         sptr<ScreenSession>& screenSession);
55 
56     static void ScreenConnectionChange(sptr<IScreenSessionManagerClient> ssmClient,
57         sptr<ScreenSession>& mainSession, ScreenEvent screenEvent);
58 
59     static void CreateExtendSession(sptr<ScreenSession>& screenSession);
60 
61     static void SetMultiScreenModeChangeTracker(std::string changeProc);
62 
63 private:
64     static void ScreenNameChange(sptr<ScreenSession>& innerScreen, sptr<ScreenSession>& externalScreen);
65     static void ScreenRSIdChange(sptr<ScreenSession>& innerScreen, sptr<ScreenSession>& externalScreen);
66     static void ScreenPropertyChange(sptr<ScreenSession>& innerScreen, sptr<ScreenSession>& externalScreen);
67     static void ScreenSerialNumberChange(sptr<ScreenSession>& innerScreen, sptr<ScreenSession>& externalScreen);
68     static void ScreenActiveModesChange(sptr<ScreenSession>& innerScreen, sptr<ScreenSession>& externalScreen);
69     static void SetScreenNotifyFlag(sptr<ScreenSession>& innerScreen, sptr<ScreenSession>& externalScreen);
70     static void ExchangeScreenSupportedRefreshRate(
71         sptr<ScreenSession>& innerScreen, sptr<ScreenSession>& externalScreen);
72 };
73 } // Rosen
74 } // OHOS
75 #endif // MULTI_SCREEN_CHANGE_UTILS_H