1 /*
2  * Copyright (c) 2023-2023 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 OHOS_CAMERA_DPS_I_SCHEDULER_STATE_H
17 #define OHOS_CAMERA_DPS_I_SCHEDULER_STATE_H
18 
19 #include "basic_definitions.h"
20 
21 namespace OHOS {
22 namespace CameraStandard {
23 namespace DeferredProcessing {
24 const std::string IGNORE_BATTERY_LEVEL = "ohos.dps.ignore_battery_level";
25 const std::string IGNORE_BATTERY = "ohos.dps.ignore_battery";
26 const std::string IGNORE_SCREEN = "ohos.dps.ignore_screen";
27 const std::string IGNORE_TEMPERATURE = "ohos.dps.ignore_temperature";
28 
29 class ISchedulerVideoState {
30 public:
31     struct VideoSchedulerInfo {
32         bool isNeedStop;
33         bool isCharging;
34 
35         bool operator==(const VideoSchedulerInfo& info) const
36         {
37             return isNeedStop == info.isNeedStop && isCharging == info.isCharging;
38         }
39     };
40 
41     explicit ISchedulerVideoState(int32_t stateValue);
42     virtual ~ISchedulerVideoState();
43 
44     int32_t Initialize();
45     VideoSchedulerInfo GetScheduleInfo(ScheduleType type);
46     bool UpdateSchedulerInfo(ScheduleType type, int32_t stateValue);
47 
48 protected:
49     virtual VideoSchedulerInfo ReevaluateSchedulerInfo() = 0;
50 
51     int32_t stateValue_;
52     VideoSchedulerInfo scheduleInfo_;
53 };
54 } // namespace DeferredProcessing
55 } // namespace CameraStandard
56 } // namespace OHOS
57 #endif // OHOS_CAMERA_DPS_I_SCHEDULER_STATE_H