1885b47fbSopenharmony_ci/* 2885b47fbSopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd. 3885b47fbSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4885b47fbSopenharmony_ci * you may not use this file except in compliance with the License. 5885b47fbSopenharmony_ci * You may obtain a copy of the License at 6885b47fbSopenharmony_ci * 7885b47fbSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8885b47fbSopenharmony_ci * 9885b47fbSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10885b47fbSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11885b47fbSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12885b47fbSopenharmony_ci * See the License for the specific language governing permissions and 13885b47fbSopenharmony_ci * limitations under the License. 14885b47fbSopenharmony_ci */ 15885b47fbSopenharmony_ci 16885b47fbSopenharmony_ci#ifndef ACCESSIBILITY_DISPLAY_MANAGER_H 17885b47fbSopenharmony_ci#define ACCESSIBILITY_DISPLAY_MANAGER_H 18885b47fbSopenharmony_ci 19885b47fbSopenharmony_ci#include <memory> 20885b47fbSopenharmony_ci#include "display_manager.h" 21885b47fbSopenharmony_ci#include "display_info.h" 22885b47fbSopenharmony_ci#include "dm_common.h" 23885b47fbSopenharmony_ci#include "event_handler.h" 24885b47fbSopenharmony_ci#include "singleton.h" 25885b47fbSopenharmony_ci 26885b47fbSopenharmony_cinamespace OHOS { 27885b47fbSopenharmony_cinamespace Accessibility { 28885b47fbSopenharmony_ciclass AccessibilityDisplayManager { 29885b47fbSopenharmony_ci DECLARE_SINGLETON(AccessibilityDisplayManager) 30885b47fbSopenharmony_cipublic: 31885b47fbSopenharmony_ci const sptr<Rosen::Display> GetDisplay(uint64_t id); 32885b47fbSopenharmony_ci std::vector<sptr<Rosen::Display>> GetDisplays(); 33885b47fbSopenharmony_ci const sptr<Rosen::Display> GetDefaultDisplay(); 34885b47fbSopenharmony_ci uint64_t GetDefaultDisplayId(); 35885b47fbSopenharmony_ci int32_t GetDefaultDisplayDpi(); 36885b47fbSopenharmony_ci sptr<Rosen::Display> GetDefaultDisplaySync(); 37885b47fbSopenharmony_ci int32_t GetWidth(); 38885b47fbSopenharmony_ci int32_t GetHeight(); 39885b47fbSopenharmony_ci OHOS::Rosen::DisplayOrientation GetOrientation(); 40885b47fbSopenharmony_ci bool IsFoldable(); 41885b47fbSopenharmony_ci Rosen::FoldDisplayMode GetFoldDisplayMode(); 42885b47fbSopenharmony_ci Rosen::FoldStatus GetFoldStatus(); 43885b47fbSopenharmony_ci void SetDisplayScale(const uint64_t screenId, float scaleX, float scaleY, float pivotX, float pivotY); 44885b47fbSopenharmony_ci 45885b47fbSopenharmony_ci void RegisterDisplayListener(const std::shared_ptr<AppExecFwk::EventHandler> &handler); 46885b47fbSopenharmony_ci void UnregisterDisplayListener(); 47885b47fbSopenharmony_ci 48885b47fbSopenharmony_ciprivate: 49885b47fbSopenharmony_ci class DisplayListener : public Rosen::DisplayManager::IDisplayListener { 50885b47fbSopenharmony_ci public: 51885b47fbSopenharmony_ci explicit DisplayListener() {} 52885b47fbSopenharmony_ci ~DisplayListener() = default; 53885b47fbSopenharmony_ci 54885b47fbSopenharmony_ci virtual void OnCreate(Rosen::DisplayId dId) override {} 55885b47fbSopenharmony_ci virtual void OnDestroy(Rosen::DisplayId dId) override {} 56885b47fbSopenharmony_ci virtual void OnChange(Rosen::DisplayId dId) override {} 57885b47fbSopenharmony_ci }; 58885b47fbSopenharmony_ci 59885b47fbSopenharmony_ci sptr<DisplayListener> listener_ = nullptr; 60885b47fbSopenharmony_ci std::shared_ptr<AppExecFwk::EventHandler> handler_ = nullptr; 61885b47fbSopenharmony_ci}; 62885b47fbSopenharmony_ci} // namespace Accessibility 63885b47fbSopenharmony_ci} // namespace OHOS 64885b47fbSopenharmony_ci#endif // ACCESSIBILITY_DISPLAY_MANAGER_H