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 POINTER_DEVICE_MANAGER_H 17 #define POINTER_DEVICE_MANAGER_H 18 19 #include "delegate_interface.h" 20 21 namespace OHOS { 22 namespace MMI { 23 class PointerDeviceManager { 24 public: 25 DISALLOW_COPY_AND_MOVE(PointerDeviceManager); 26 27 static PointerDeviceManager& GetInstance(); 28 #ifdef OHOS_BUILD_ENABLE_POINTER_DRAWING 29 void SetDelegateProxy(std::shared_ptr<DelegateInterface> proxy); 30 std::shared_ptr<DelegateInterface> GetDelegateProxy(); 31 #endif // OHOS_BUILD_ENABLE_POINTER_DRAWING 32 33 public: 34 std::atomic<bool> isInit { false }; 35 std::atomic<bool> isFirstAddCommonEventService { true }; 36 std::atomic<bool> isFirstAddRenderService { true }; 37 std::atomic<bool> isFirstAddDisplayManagerService { true }; 38 std::atomic<bool> isFirstAdddistributedKVDataService { true }; 39 40 private: 41 PointerDeviceManager() = default; 42 ~PointerDeviceManager() = default; 43 #ifdef OHOS_BUILD_ENABLE_POINTER_DRAWING 44 std::shared_ptr<DelegateInterface> delegateProxy_ { nullptr }; 45 #endif // OHOS_BUILD_ENABLE_POINTER_DRAWING 46 }; 47 48 #define POINTER_DEV_MGR ::OHOS::MMI::PointerDeviceManager::GetInstance() 49 } // namespace MMI 50 } // namespace OHOS 51 #endif // POINTER_DEVICE_MANAGER_H 52