1ea497e4dSopenharmony_ci/* 2ea497e4dSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 3ea497e4dSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4ea497e4dSopenharmony_ci * you may not use this file except in compliance with the License. 5ea497e4dSopenharmony_ci * You may obtain a copy of the License at 6ea497e4dSopenharmony_ci * 7ea497e4dSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8ea497e4dSopenharmony_ci * 9ea497e4dSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10ea497e4dSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11ea497e4dSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12ea497e4dSopenharmony_ci * See the License for the specific language governing permissions and 13ea497e4dSopenharmony_ci * limitations under the License. 14ea497e4dSopenharmony_ci */ 15ea497e4dSopenharmony_ci 16ea497e4dSopenharmony_ci#ifndef SCREEN_BRIGHTNESS_MANAGER 17ea497e4dSopenharmony_ci#define SCREEN_BRIGHTNESS_MANAGER 18ea497e4dSopenharmony_ci 19ea497e4dSopenharmony_ci#include <map> 20ea497e4dSopenharmony_ci#include <mutex> 21ea497e4dSopenharmony_ci 22ea497e4dSopenharmony_ci#include "nocopyable.h" 23ea497e4dSopenharmony_ci 24ea497e4dSopenharmony_ci#include "face_auth_all_in_one_executor_hdi.h" 25ea497e4dSopenharmony_ci#include "face_auth_hdi.h" 26ea497e4dSopenharmony_ci#include "isa_command_processor.h" 27ea497e4dSopenharmony_ci#include "iscreen_brightness_task.h" 28ea497e4dSopenharmony_ci 29ea497e4dSopenharmony_cinamespace OHOS { 30ea497e4dSopenharmony_cinamespace UserIam { 31ea497e4dSopenharmony_cinamespace FaceAuth { 32ea497e4dSopenharmony_cinamespace UserAuth = OHOS::UserIam::UserAuth; 33ea497e4dSopenharmony_ciclass ScreenBrightnessManager : public std::enable_shared_from_this<ScreenBrightnessManager>, 34ea497e4dSopenharmony_ci public ISaCommandProcessor, 35ea497e4dSopenharmony_ci public NoCopyable { 36ea497e4dSopenharmony_cipublic: 37ea497e4dSopenharmony_ci ScreenBrightnessManager() = default; 38ea497e4dSopenharmony_ci ~ScreenBrightnessManager() override = default; 39ea497e4dSopenharmony_ci static std::shared_ptr<ScreenBrightnessManager> GetInstance(); 40ea497e4dSopenharmony_ci 41ea497e4dSopenharmony_ci UserAuth::ResultCode ProcessSaCommand(std::shared_ptr<FaceAuthAllInOneExecutorHdi> executor, 42ea497e4dSopenharmony_ci const SaCommand &command) override; 43ea497e4dSopenharmony_ci void OnHdiDisconnect(std::shared_ptr<FaceAuthAllInOneExecutorHdi> executor) override; 44ea497e4dSopenharmony_ci 45ea497e4dSopenharmony_ci std::shared_ptr<IScreenBrightnessTask> GetCurrentTask(); 46ea497e4dSopenharmony_ci 47ea497e4dSopenharmony_ciprivate: 48ea497e4dSopenharmony_ci UserAuth::ResultCode ProcessScreenBrightnessIncreaseBegin(std::shared_ptr<FaceAuthAllInOneExecutorHdi> executor, 49ea497e4dSopenharmony_ci const SaCommandParam param); 50ea497e4dSopenharmony_ci UserAuth::ResultCode ProcessScreenBrightnessIncreaseEnd(std::shared_ptr<FaceAuthAllInOneExecutorHdi> executor, 51ea497e4dSopenharmony_ci const SaCommandParam param); 52ea497e4dSopenharmony_ci 53ea497e4dSopenharmony_ci std::shared_ptr<FaceAuthAllInOneExecutorHdi> executorInProc_ = nullptr; 54ea497e4dSopenharmony_ci std::shared_ptr<IScreenBrightnessTask> taskInProc_ = nullptr; 55ea497e4dSopenharmony_ci std::mutex mutex_; 56ea497e4dSopenharmony_ci}; 57ea497e4dSopenharmony_ci} // namespace FaceAuth 58ea497e4dSopenharmony_ci} // namespace UserIam 59ea497e4dSopenharmony_ci} // namespace OHOS 60ea497e4dSopenharmony_ci 61ea497e4dSopenharmony_ci#endif // SCREEN_BRIGHTNESS_MANAGER