1e0dac50fSopenharmony_ci/* 2e0dac50fSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3e0dac50fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4e0dac50fSopenharmony_ci * you may not use this file except in compliance with the License. 5e0dac50fSopenharmony_ci * You may obtain a copy of the License at 6e0dac50fSopenharmony_ci * 7e0dac50fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8e0dac50fSopenharmony_ci * 9e0dac50fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10e0dac50fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11e0dac50fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e0dac50fSopenharmony_ci * See the License for the specific language governing permissions and 13e0dac50fSopenharmony_ci * limitations under the License. 14e0dac50fSopenharmony_ci */ 15e0dac50fSopenharmony_ci 16e0dac50fSopenharmony_ci#ifndef FOUNDATION_DMSERVER_DISPLAY_MANAGER_PROXY_H 17e0dac50fSopenharmony_ci#define FOUNDATION_DMSERVER_DISPLAY_MANAGER_PROXY_H 18e0dac50fSopenharmony_ci 19e0dac50fSopenharmony_ci#include "display_manager_interface.h" 20e0dac50fSopenharmony_ci 21e0dac50fSopenharmony_ci#include "dm_common.h" 22e0dac50fSopenharmony_ci 23e0dac50fSopenharmony_ci#include "screen.h" 24e0dac50fSopenharmony_ci 25e0dac50fSopenharmony_ci#include <iremote_proxy.h> 26e0dac50fSopenharmony_ci 27e0dac50fSopenharmony_cinamespace OHOS::Rosen { 28e0dac50fSopenharmony_ciclass DisplayManagerProxy : public IRemoteProxy<IDisplayManager> { 29e0dac50fSopenharmony_cipublic: 30e0dac50fSopenharmony_ci explicit DisplayManagerProxy(const sptr<IRemoteObject> &impl) 31e0dac50fSopenharmony_ci : IRemoteProxy<IDisplayManager>(impl) {}; 32e0dac50fSopenharmony_ci ~DisplayManagerProxy() {}; 33e0dac50fSopenharmony_ci 34e0dac50fSopenharmony_ci sptr<DisplayInfo> GetDefaultDisplayInfo() override; 35e0dac50fSopenharmony_ci sptr<DisplayInfo> GetDisplayInfoById(DisplayId displayId) override; 36e0dac50fSopenharmony_ci sptr<DisplayInfo> GetDisplayInfoByScreen(ScreenId screenId) override; 37e0dac50fSopenharmony_ci DMError HasPrivateWindow(DisplayId displayId, bool& hasPrivateWindow) override; 38e0dac50fSopenharmony_ci 39e0dac50fSopenharmony_ci ScreenId CreateVirtualScreen(VirtualScreenOption option, 40e0dac50fSopenharmony_ci const sptr<IRemoteObject>& displayManagerAgent) override; 41e0dac50fSopenharmony_ci DMError DestroyVirtualScreen(ScreenId screenId) override; 42e0dac50fSopenharmony_ci DMError SetVirtualScreenSurface(ScreenId screenId, sptr<IBufferProducer> surface) override; 43e0dac50fSopenharmony_ci DMError SetOrientation(ScreenId screenId, Orientation orientation) override; 44e0dac50fSopenharmony_ci std::shared_ptr<Media::PixelMap> GetDisplaySnapshot(DisplayId displayId, 45e0dac50fSopenharmony_ci DmErrorCode* errorCode = nullptr) override; 46e0dac50fSopenharmony_ci DMError IsScreenRotationLocked(bool& isLocked) override; 47e0dac50fSopenharmony_ci DMError SetScreenRotationLocked(bool isLocked) override; 48e0dac50fSopenharmony_ci DMError SetScreenRotationLockedFromJs(bool isLocked) override; 49e0dac50fSopenharmony_ci 50e0dac50fSopenharmony_ci // colorspace, gamut 51e0dac50fSopenharmony_ci DMError GetScreenSupportedColorGamuts(ScreenId screenId, std::vector<ScreenColorGamut>& colorGamuts) override; 52e0dac50fSopenharmony_ci DMError GetScreenColorGamut(ScreenId screenId, ScreenColorGamut& colorGamut) override; 53e0dac50fSopenharmony_ci DMError SetScreenColorGamut(ScreenId screenId, int32_t colorGamutIdx) override; 54e0dac50fSopenharmony_ci DMError GetScreenGamutMap(ScreenId screenId, ScreenGamutMap& gamutMap) override; 55e0dac50fSopenharmony_ci DMError SetScreenGamutMap(ScreenId screenId, ScreenGamutMap gamutMap) override; 56e0dac50fSopenharmony_ci DMError SetScreenColorTransform(ScreenId screenId) override; 57e0dac50fSopenharmony_ci 58e0dac50fSopenharmony_ci DMError GetPixelFormat(ScreenId screenId, GraphicPixelFormat& pixelFormat) override; 59e0dac50fSopenharmony_ci DMError SetPixelFormat(ScreenId screenId, GraphicPixelFormat pixelFormat) override; 60e0dac50fSopenharmony_ci DMError GetSupportedHDRFormats(ScreenId screenId, std::vector<ScreenHDRFormat>& hdrFormats) override; 61e0dac50fSopenharmony_ci DMError GetScreenHDRFormat(ScreenId screenId, ScreenHDRFormat& hdrFormat) override; 62e0dac50fSopenharmony_ci DMError SetScreenHDRFormat(ScreenId screenId, int32_t modeIdx) override; 63e0dac50fSopenharmony_ci DMError GetSupportedColorSpaces(ScreenId screenId, std::vector<GraphicCM_ColorSpaceType>& colorSpaces) override; 64e0dac50fSopenharmony_ci DMError GetScreenColorSpace(ScreenId screenId, GraphicCM_ColorSpaceType& colorSpace) override; 65e0dac50fSopenharmony_ci DMError SetScreenColorSpace(ScreenId screenId, GraphicCM_ColorSpaceType colorSpace) override; 66e0dac50fSopenharmony_ci 67e0dac50fSopenharmony_ci DMError RegisterDisplayManagerAgent(const sptr<IDisplayManagerAgent>& displayManagerAgent, 68e0dac50fSopenharmony_ci DisplayManagerAgentType type) override; 69e0dac50fSopenharmony_ci DMError UnregisterDisplayManagerAgent(const sptr<IDisplayManagerAgent>& displayManagerAgent, 70e0dac50fSopenharmony_ci DisplayManagerAgentType type) override; 71e0dac50fSopenharmony_ci bool WakeUpBegin(PowerStateChangeReason reason) override; 72e0dac50fSopenharmony_ci bool WakeUpEnd() override; 73e0dac50fSopenharmony_ci bool SuspendBegin(PowerStateChangeReason reason) override; 74e0dac50fSopenharmony_ci bool SuspendEnd() override; 75e0dac50fSopenharmony_ci bool SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason) override; 76e0dac50fSopenharmony_ci bool SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason) override; 77e0dac50fSopenharmony_ci ScreenPowerState GetScreenPower(ScreenId dmsScreenId) override; 78e0dac50fSopenharmony_ci bool SetDisplayState(DisplayState state) override; 79e0dac50fSopenharmony_ci bool TryToCancelScreenOff() override; 80e0dac50fSopenharmony_ci std::vector<DisplayId> GetAllDisplayIds() override; 81e0dac50fSopenharmony_ci DisplayState GetDisplayState(DisplayId displayId) override; 82e0dac50fSopenharmony_ci sptr<CutoutInfo> GetCutoutInfo(DisplayId displayId) override; 83e0dac50fSopenharmony_ci void NotifyDisplayEvent(DisplayEvent event) override; 84e0dac50fSopenharmony_ci bool SetFreeze(std::vector<DisplayId> displayIds, bool isFreeze) override; 85e0dac50fSopenharmony_ci DMError MakeMirror(ScreenId mainScreenId, std::vector<ScreenId> mirrorScreenId, ScreenId& screenGroupId) override; 86e0dac50fSopenharmony_ci DMError StopMirror(const std::vector<ScreenId>& mirrorScreenIds) override; 87e0dac50fSopenharmony_ci sptr<ScreenInfo> GetScreenInfoById(ScreenId screenId) override; 88e0dac50fSopenharmony_ci sptr<ScreenGroupInfo> GetScreenGroupInfoById(ScreenId screenId) override; 89e0dac50fSopenharmony_ci DMError GetAllScreenInfos(std::vector<sptr<ScreenInfo>>& screens) override; 90e0dac50fSopenharmony_ci DMError MakeExpand(std::vector<ScreenId> screenId, std::vector<Point> startPoint, ScreenId& screenGroupId) override; 91e0dac50fSopenharmony_ci DMError StopExpand(const std::vector<ScreenId>& expandScreenIds) override; 92e0dac50fSopenharmony_ci void RemoveVirtualScreenFromGroup(std::vector<ScreenId> screens) override; 93e0dac50fSopenharmony_ci DMError SetScreenActiveMode(ScreenId screenId, uint32_t modeId) override; 94e0dac50fSopenharmony_ci DMError SetVirtualPixelRatio(ScreenId screenId, float virtualPixelRatio) override; 95e0dac50fSopenharmony_ci DMError SetResolution(ScreenId screenId, uint32_t width, uint32_t height, float virtualPixelRatio) override; 96e0dac50fSopenharmony_ci DMError GetDensityInCurResolution(ScreenId screenId, float& virtualPixelRatio) override; 97e0dac50fSopenharmony_ci DMError AddSurfaceNodeToDisplay(DisplayId displayId, 98e0dac50fSopenharmony_ci std::shared_ptr<class RSSurfaceNode>& surfaceNode, bool onTop = true) override; 99e0dac50fSopenharmony_ci DMError RemoveSurfaceNodeFromDisplay(DisplayId displayId, 100e0dac50fSopenharmony_ci std::shared_ptr<class RSSurfaceNode>& surfaceNode) override; 101e0dac50fSopenharmony_ci DMError ResizeVirtualScreen(ScreenId screenId, uint32_t width, uint32_t height) override; 102e0dac50fSopenharmony_ci DMError MakeUniqueScreen(const std::vector<ScreenId>& screenIds) override; 103e0dac50fSopenharmony_ci std::vector<DisplayPhysicalResolution> GetAllDisplayPhysicalResolution() override; 104e0dac50fSopenharmony_ciprivate: 105e0dac50fSopenharmony_ci static inline BrokerDelegator<DisplayManagerProxy> delegator_; 106e0dac50fSopenharmony_ci}; 107e0dac50fSopenharmony_ci} // namespace OHOS::Rosen 108e0dac50fSopenharmony_ci 109e0dac50fSopenharmony_ci#endif // FOUNDATION_DMSERVER_DISPLAY_MANAGER_PROXY_H