1e0dac50fSopenharmony_ci/* 2e0dac50fSopenharmony_ci * Copyright (c) 2023 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_DM_DISPLAY_LITE_H 17e0dac50fSopenharmony_ci#define FOUNDATION_DM_DISPLAY_LITE_H 18e0dac50fSopenharmony_ci 19e0dac50fSopenharmony_ci#include <string> 20e0dac50fSopenharmony_ci#include "dm_common.h" 21e0dac50fSopenharmony_ci#include "noncopyable.h" 22e0dac50fSopenharmony_ci 23e0dac50fSopenharmony_cinamespace OHOS::Rosen { 24e0dac50fSopenharmony_ciclass DisplayInfo; 25e0dac50fSopenharmony_ciclass CutoutInfo; 26e0dac50fSopenharmony_ci 27e0dac50fSopenharmony_ciclass DisplayLite : public RefBase { 28e0dac50fSopenharmony_cifriend class DisplayManagerLite; 29e0dac50fSopenharmony_cipublic: 30e0dac50fSopenharmony_ci ~DisplayLite(); 31e0dac50fSopenharmony_ci DisplayLite(const DisplayLite&) = delete; 32e0dac50fSopenharmony_ci DisplayLite(DisplayLite&&) = delete; 33e0dac50fSopenharmony_ci DisplayLite& operator=(const DisplayLite&) = delete; 34e0dac50fSopenharmony_ci DisplayLite& operator=(DisplayLite&&) = delete; 35e0dac50fSopenharmony_ci 36e0dac50fSopenharmony_ci /** 37e0dac50fSopenharmony_ci * @brief Get id of the display. 38e0dac50fSopenharmony_ci * 39e0dac50fSopenharmony_ci * @return Display id. 40e0dac50fSopenharmony_ci */ 41e0dac50fSopenharmony_ci DisplayId GetId() const; 42e0dac50fSopenharmony_ci 43e0dac50fSopenharmony_ci /** 44e0dac50fSopenharmony_ci * @brief Get info of the display. 45e0dac50fSopenharmony_ci * 46e0dac50fSopenharmony_ci * @return Info of the display. 47e0dac50fSopenharmony_ci */ 48e0dac50fSopenharmony_ci sptr<DisplayInfo> GetDisplayInfo() const; 49e0dac50fSopenharmony_ci 50e0dac50fSopenharmony_ci /** 51e0dac50fSopenharmony_ci * @brief Get width of the display. 52e0dac50fSopenharmony_ci * 53e0dac50fSopenharmony_ci * @return Width of the display. 54e0dac50fSopenharmony_ci */ 55e0dac50fSopenharmony_ci int32_t GetWidth() const; 56e0dac50fSopenharmony_ci 57e0dac50fSopenharmony_ci /** 58e0dac50fSopenharmony_ci * @brief Get height of the display. 59e0dac50fSopenharmony_ci * 60e0dac50fSopenharmony_ci * @return Height of the display. 61e0dac50fSopenharmony_ci */ 62e0dac50fSopenharmony_ci int32_t GetHeight() const; 63e0dac50fSopenharmony_ci 64e0dac50fSopenharmony_ci /** 65e0dac50fSopenharmony_ci * @brief Get cutout info of the display. 66e0dac50fSopenharmony_ci * 67e0dac50fSopenharmony_ci * @return Cutout info of the display. 68e0dac50fSopenharmony_ci */ 69e0dac50fSopenharmony_ci sptr<CutoutInfo> GetCutoutInfo() const; 70e0dac50fSopenharmony_ci 71e0dac50fSopenharmony_ci /** 72e0dac50fSopenharmony_ci * @brief Get the rotation of the display. 73e0dac50fSopenharmony_ci * 74e0dac50fSopenharmony_ci * @return Rotation of the display.. 75e0dac50fSopenharmony_ci */ 76e0dac50fSopenharmony_ci Rotation GetRotation() const; 77e0dac50fSopenharmony_ciprotected: 78e0dac50fSopenharmony_ci // No more methods or variables can be defined here. 79e0dac50fSopenharmony_ci DisplayLite(const std::string& name, sptr<DisplayInfo> info); 80e0dac50fSopenharmony_ciprivate: 81e0dac50fSopenharmony_ci // No more methods or variables can be defined here. 82e0dac50fSopenharmony_ci void UpdateDisplayInfo(sptr<DisplayInfo>) const; 83e0dac50fSopenharmony_ci void UpdateDisplayInfo() const; 84e0dac50fSopenharmony_ci class Impl; 85e0dac50fSopenharmony_ci sptr<Impl> pImpl_; 86e0dac50fSopenharmony_ci}; 87e0dac50fSopenharmony_ci} // namespace OHOS::Rosen 88e0dac50fSopenharmony_ci 89e0dac50fSopenharmony_ci#endif // FOUNDATION_DM_DISPLAY_LITE_H