1595d5899Sopenharmony_ci/*
2595d5899Sopenharmony_ci * Copyright (c) 2023-2023 Huawei Device Co., Ltd.
3595d5899Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4595d5899Sopenharmony_ci * you may not use this file except in compliance with the License.
5595d5899Sopenharmony_ci * You may obtain a copy of the License at
6595d5899Sopenharmony_ci *
7595d5899Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8595d5899Sopenharmony_ci *
9595d5899Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10595d5899Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11595d5899Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12595d5899Sopenharmony_ci * See the License for the specific language governing permissions and
13595d5899Sopenharmony_ci * limitations under the License.
14595d5899Sopenharmony_ci */
15595d5899Sopenharmony_ci
16595d5899Sopenharmony_ci#include "calculation_manager.h"
17595d5899Sopenharmony_ci
18595d5899Sopenharmony_ci#include <algorithm>
19595d5899Sopenharmony_ci#include <cmath>
20595d5899Sopenharmony_ci#include <iostream>
21595d5899Sopenharmony_ci#include <sstream>
22595d5899Sopenharmony_ci#include <string>
23595d5899Sopenharmony_ci
24595d5899Sopenharmony_ci#include "display_log.h"
25595d5899Sopenharmony_ci
26595d5899Sopenharmony_cinamespace OHOS {
27595d5899Sopenharmony_cinamespace DisplayPowerMgr {
28595d5899Sopenharmony_ci
29595d5899Sopenharmony_cinamespace {
30595d5899Sopenharmony_ciconstexpr float DEFAULT_NO_OFFSET_LUX = -1.0f;
31595d5899Sopenharmony_ciconstexpr float DEFAULT_OFFSET_BRIGHTNESS = 0.0f;
32595d5899Sopenharmony_ciconstexpr float DEFAULT_OFFSET_DELTA = 0.0f;
33595d5899Sopenharmony_ciconstexpr float SMALL_VALUE = 1e-6f;
34595d5899Sopenharmony_ciconstexpr float DEFAULT_OFFSET_RATIO = 1.0f;
35595d5899Sopenharmony_ciconstexpr float MIN_OFFSET_RATIO = 0.0f;
36595d5899Sopenharmony_ciconstexpr float MIN_DEFAULT_BRIGHTNESS = 4.0f;
37595d5899Sopenharmony_ciconstexpr float MAX_DEFAULT_BRIGHTNESS = 255.0f;
38595d5899Sopenharmony_ci
39595d5899Sopenharmony_ciconstexpr float AMBIENT_VALID_MAX_LUX = 40000;
40595d5899Sopenharmony_ciconstexpr float AMBIENT_VALID_MIN_LUX = 0.0f;
41595d5899Sopenharmony_ci} // namespace
42595d5899Sopenharmony_ci
43595d5899Sopenharmony_civoid BrightnessCalculationManager::InitParameters()
44595d5899Sopenharmony_ci{
45595d5899Sopenharmony_ci    mBrightnessCalculationCurve.InitParameters();
46595d5899Sopenharmony_ci}
47595d5899Sopenharmony_ci
48595d5899Sopenharmony_cifloat BrightnessCalculationManager::GetInterpolatedValue(float lux)
49595d5899Sopenharmony_ci{
50595d5899Sopenharmony_ci    float valueInterp = GetInterpolatedBrightenssLevel(mPosBrightness, lux) / MAX_DEFAULT_BRIGHTNESS;
51595d5899Sopenharmony_ci    DISPLAY_HILOGI(FEAT_BRIGHTNESS, "GetInterpolatedValue lux=%{public}f, valueInterp=%{public}f, "\
52595d5899Sopenharmony_ci        " mPosBrightness=%{public}f", lux, valueInterp, mPosBrightness);
53595d5899Sopenharmony_ci    return valueInterp;
54595d5899Sopenharmony_ci}
55595d5899Sopenharmony_ci
56595d5899Sopenharmony_cifloat BrightnessCalculationManager::GetInterpolatedBrightenssLevel(float positionBrightness, float lux)
57595d5899Sopenharmony_ci{
58595d5899Sopenharmony_ci    float posBrightness = positionBrightness;
59595d5899Sopenharmony_ci    UpdateCurveAmbientLux(lux);
60595d5899Sopenharmony_ci    UpdateDefaultBrightness(lux);
61595d5899Sopenharmony_ci
62595d5899Sopenharmony_ci    if (mLastLuxDefaultBrightness <= DEFAULT_OFFSET_BRIGHTNESS && mPosBrightness != DEFAULT_OFFSET_BRIGHTNESS) {
63595d5899Sopenharmony_ci        posBrightness = DEFAULT_OFFSET_BRIGHTNESS;
64595d5899Sopenharmony_ci        ResetDefaultBrightnessOffset();
65595d5899Sopenharmony_ci    }
66595d5899Sopenharmony_ci
67595d5899Sopenharmony_ci    float offsetBrightness = mDefaultBrightnessFromLux;
68595d5899Sopenharmony_ci    if (IsDefaultBrightnessMode(posBrightness)) {
69595d5899Sopenharmony_ci        offsetBrightness = mDefaultBrightnessFromLux;
70595d5899Sopenharmony_ci    } else {
71595d5899Sopenharmony_ci        offsetBrightness = GetOffsetLevel(mStartLuxDefaultBrightness,
72595d5899Sopenharmony_ci            mDefaultBrightnessFromLux, posBrightness, mDelta);
73595d5899Sopenharmony_ci    }
74595d5899Sopenharmony_ci
75595d5899Sopenharmony_ci    mLastLuxDefaultBrightness = mDefaultBrightnessFromLux;
76595d5899Sopenharmony_ci    mOffsetBrightnessLast = offsetBrightness;
77595d5899Sopenharmony_ci    DISPLAY_HILOGI(FEAT_BRIGHTNESS, "GetLevel lux=%{public}f, offsetBrightness=%{public}f, default=%{public}f",
78595d5899Sopenharmony_ci        lux, offsetBrightness, mDefaultBrightnessFromLux);
79595d5899Sopenharmony_ci    return offsetBrightness;
80595d5899Sopenharmony_ci}
81595d5899Sopenharmony_ci
82595d5899Sopenharmony_civoid BrightnessCalculationManager::UpdateDefaultBrightness(float lux)
83595d5899Sopenharmony_ci{
84595d5899Sopenharmony_ci    float defaultBrightness = GetCurrentBrightness(lux);
85595d5899Sopenharmony_ci    mDefaultBrightnessFromLux = defaultBrightness;
86595d5899Sopenharmony_ci}
87595d5899Sopenharmony_ci
88595d5899Sopenharmony_cifloat BrightnessCalculationManager::GetCurrentBrightness(float lux)
89595d5899Sopenharmony_ci{
90595d5899Sopenharmony_ci    return mBrightnessCalculationCurve.GetCurrentBrightness(lux);
91595d5899Sopenharmony_ci}
92595d5899Sopenharmony_ci
93595d5899Sopenharmony_civoid BrightnessCalculationManager::UpdateParaFromReboot()
94595d5899Sopenharmony_ci{
95595d5899Sopenharmony_ci    mLastLuxDefaultBrightness = mDefaultBrightnessFromLux;
96595d5899Sopenharmony_ci    mStartLuxDefaultBrightness = mDefaultBrightnessFromLux;
97595d5899Sopenharmony_ci    mOffsetBrightnessLast = mDefaultBrightnessFromLux;
98595d5899Sopenharmony_ci    mIsReboot = false;
99595d5899Sopenharmony_ci}
100595d5899Sopenharmony_ci
101595d5899Sopenharmony_cibool BrightnessCalculationManager::IsDefaultBrightnessMode(float positionBrightness)
102595d5899Sopenharmony_ci{
103595d5899Sopenharmony_ci    if (positionBrightness == DEFAULT_OFFSET_DELTA) {
104595d5899Sopenharmony_ci        return true;
105595d5899Sopenharmony_ci    }
106595d5899Sopenharmony_ci    return false;
107595d5899Sopenharmony_ci}
108595d5899Sopenharmony_ci
109595d5899Sopenharmony_cifloat BrightnessCalculationManager::GetOffsetLevel(float brightnessStartOrig, float brightnessEndOrig,
110595d5899Sopenharmony_ci    float brightnessStartNew, float delta)
111595d5899Sopenharmony_ci{
112595d5899Sopenharmony_ci    float brightenRatio = 1.0f;
113595d5899Sopenharmony_ci    float darkenRatio = 1.0f;
114595d5899Sopenharmony_ci    float deltaStart = delta;
115595d5899Sopenharmony_ci    if (brightnessStartOrig < brightnessEndOrig) {
116595d5899Sopenharmony_ci        if (deltaStart > DEFAULT_OFFSET_DELTA) {
117595d5899Sopenharmony_ci            darkenRatio = GetDefaultBrightenOffsetBrightenRaio(brightnessStartOrig, brightnessEndOrig,
118595d5899Sopenharmony_ci                brightnessStartNew, deltaStart);
119595d5899Sopenharmony_ci        }
120595d5899Sopenharmony_ci        if (deltaStart < DEFAULT_OFFSET_DELTA) {
121595d5899Sopenharmony_ci            brightenRatio = GetDefaultDarkenOffsetBrightenRatio(brightnessStartOrig, brightnessEndOrig,
122595d5899Sopenharmony_ci                brightnessStartNew, deltaStart);
123595d5899Sopenharmony_ci        }
124595d5899Sopenharmony_ci    }
125595d5899Sopenharmony_ci    if (brightnessStartOrig > brightnessEndOrig) {
126595d5899Sopenharmony_ci        if (deltaStart < DEFAULT_OFFSET_DELTA) {
127595d5899Sopenharmony_ci            darkenRatio = GetDefaultDarkenOffsetDarkenRatio(brightnessStartOrig, brightnessEndOrig,
128595d5899Sopenharmony_ci                brightnessStartNew, deltaStart);
129595d5899Sopenharmony_ci        }
130595d5899Sopenharmony_ci        if (deltaStart > DEFAULT_OFFSET_DELTA) {
131595d5899Sopenharmony_ci            brightenRatio = GetDefaultBrightenOffsetDarkenRatio(brightnessStartOrig, brightnessEndOrig,
132595d5899Sopenharmony_ci                brightnessStartNew);
133595d5899Sopenharmony_ci        }
134595d5899Sopenharmony_ci    }
135595d5899Sopenharmony_ci    float tempDeltaNew = deltaStart * brightenRatio * darkenRatio;
136595d5899Sopenharmony_ci
137595d5899Sopenharmony_ci    float brightnessAndDelta = brightnessEndOrig + tempDeltaNew;
138595d5899Sopenharmony_ci    float offsetBrightnessTemp = (brightnessAndDelta > MIN_DEFAULT_BRIGHTNESS
139595d5899Sopenharmony_ci        ? brightnessAndDelta : MIN_DEFAULT_BRIGHTNESS);
140595d5899Sopenharmony_ci    float offsetBrightness = (offsetBrightnessTemp < MAX_DEFAULT_BRIGHTNESS
141595d5899Sopenharmony_ci        ? offsetBrightnessTemp : MAX_DEFAULT_BRIGHTNESS);
142595d5899Sopenharmony_ci    DISPLAY_HILOGI(FEAT_BRIGHTNESS, "GetOffsetLevel tempDeltaNew=%{public}f, deltaStart=%{public}f, "\
143595d5899Sopenharmony_ci        " brightenRatio=%{public}f, darkenRatio=%{public}f", tempDeltaNew, deltaStart, brightenRatio, darkenRatio);
144595d5899Sopenharmony_ci    return offsetBrightness;
145595d5899Sopenharmony_ci}
146595d5899Sopenharmony_ci
147595d5899Sopenharmony_cifloat BrightnessCalculationManager::GetDefaultBrightenOffsetBrightenRaio(float brightnessStartOrig,
148595d5899Sopenharmony_ci    float brightnessEndOrig, float brightnessStartNew, float deltaStart)
149595d5899Sopenharmony_ci{
150595d5899Sopenharmony_ci    float brightenRatio;
151595d5899Sopenharmony_ci    if (std::abs(MAX_DEFAULT_BRIGHTNESS - brightnessStartOrig) < SMALL_VALUE) {
152595d5899Sopenharmony_ci        brightenRatio = DEFAULT_OFFSET_RATIO;
153595d5899Sopenharmony_ci    } else {
154595d5899Sopenharmony_ci        brightenRatio = (MAX_DEFAULT_BRIGHTNESS - brightnessEndOrig)
155595d5899Sopenharmony_ci            / (MAX_DEFAULT_BRIGHTNESS - brightnessStartOrig);
156595d5899Sopenharmony_ci    }
157595d5899Sopenharmony_ci
158595d5899Sopenharmony_ci    float offsetBrightnessTmp = ((1 - offsetBrightenAlphaRight)
159595d5899Sopenharmony_ci        * std::max(brightnessEndOrig, brightnessStartNew))
160595d5899Sopenharmony_ci        + (offsetBrightenAlphaRight * ((deltaStart * brightenRatio) + brightnessEndOrig));
161595d5899Sopenharmony_ci    if (std::abs(deltaStart) < SMALL_VALUE) {
162595d5899Sopenharmony_ci        brightenRatio = DEFAULT_OFFSET_RATIO;
163595d5899Sopenharmony_ci    } else {
164595d5899Sopenharmony_ci        brightenRatio = (offsetBrightnessTmp - brightnessEndOrig) / deltaStart;
165595d5899Sopenharmony_ci    }
166595d5899Sopenharmony_ci    if (brightenRatio < MIN_OFFSET_RATIO) {
167595d5899Sopenharmony_ci        brightenRatio = MIN_OFFSET_RATIO;
168595d5899Sopenharmony_ci    }
169595d5899Sopenharmony_ci    return brightenRatio;
170595d5899Sopenharmony_ci}
171595d5899Sopenharmony_ci
172595d5899Sopenharmony_ci
173595d5899Sopenharmony_cifloat BrightnessCalculationManager::GetAmbientOffsetLux()
174595d5899Sopenharmony_ci{
175595d5899Sopenharmony_ci    float lux = static_cast<int>(mOffsetLux);
176595d5899Sopenharmony_ci    return lux;
177595d5899Sopenharmony_ci}
178595d5899Sopenharmony_ci
179595d5899Sopenharmony_cifloat BrightnessCalculationManager::GetBrightenOffsetNoValidBrightenLux(float lux)
180595d5899Sopenharmony_ci{
181595d5899Sopenharmony_ci    float noValidBrightenLuxTh = AMBIENT_VALID_MAX_LUX;
182595d5899Sopenharmony_ci    return noValidBrightenLuxTh;
183595d5899Sopenharmony_ci}
184595d5899Sopenharmony_ci
185595d5899Sopenharmony_cifloat BrightnessCalculationManager::GetDefaultDarkenOffsetBrightenRatio(float brightnessStartOrig,
186595d5899Sopenharmony_ci    float brightnessEndOrig, float brightnessStartNew, float deltaStart)
187595d5899Sopenharmony_ci{
188595d5899Sopenharmony_ci    float brightenRatio;
189595d5899Sopenharmony_ci    if (std::abs(MAX_DEFAULT_BRIGHTNESS - brightnessStartOrig) < SMALL_VALUE) {
190595d5899Sopenharmony_ci        brightenRatio = DEFAULT_OFFSET_RATIO;
191595d5899Sopenharmony_ci    } else {
192595d5899Sopenharmony_ci        brightenRatio = (MAX_DEFAULT_BRIGHTNESS - brightnessEndOrig)
193595d5899Sopenharmony_ci            / (MAX_DEFAULT_BRIGHTNESS - brightnessStartOrig);
194595d5899Sopenharmony_ci    }
195595d5899Sopenharmony_ci
196595d5899Sopenharmony_ci    if (brightenRatio < MIN_OFFSET_RATIO) {
197595d5899Sopenharmony_ci        brightenRatio = MIN_OFFSET_RATIO;
198595d5899Sopenharmony_ci    }
199595d5899Sopenharmony_ci    return brightenRatio;
200595d5899Sopenharmony_ci}
201595d5899Sopenharmony_ci
202595d5899Sopenharmony_cifloat BrightnessCalculationManager::GetDefaultDarkenOffsetDarkenRatio(float brightnessStartOrig,
203595d5899Sopenharmony_ci    float brightnessEndOrig, float brightnessStartNew, float deltaStart)
204595d5899Sopenharmony_ci{
205595d5899Sopenharmony_ci    float darkenRatio;
206595d5899Sopenharmony_ci    if (std::abs(brightnessStartOrig - MIN_DEFAULT_BRIGHTNESS) < SMALL_VALUE) {
207595d5899Sopenharmony_ci        darkenRatio = DEFAULT_OFFSET_RATIO;
208595d5899Sopenharmony_ci    } else {
209595d5899Sopenharmony_ci        darkenRatio = (brightnessEndOrig - MIN_DEFAULT_BRIGHTNESS)
210595d5899Sopenharmony_ci            / (brightnessStartOrig - MIN_DEFAULT_BRIGHTNESS);
211595d5899Sopenharmony_ci    }
212595d5899Sopenharmony_ci    float offsetBrightnessTmp = ((1 - offsetDarkenAlphaLeft) * std::min(brightnessEndOrig,
213595d5899Sopenharmony_ci        brightnessStartNew)) + (offsetDarkenAlphaLeft * ((deltaStart * darkenRatio) + brightnessEndOrig));
214595d5899Sopenharmony_ci    if (std::abs(deltaStart) < SMALL_VALUE) {
215595d5899Sopenharmony_ci        darkenRatio = DEFAULT_OFFSET_RATIO;
216595d5899Sopenharmony_ci    } else {
217595d5899Sopenharmony_ci        darkenRatio = (offsetBrightnessTmp - brightnessEndOrig) / deltaStart;
218595d5899Sopenharmony_ci    }
219595d5899Sopenharmony_ci    if (darkenRatio < MIN_OFFSET_RATIO) {
220595d5899Sopenharmony_ci        darkenRatio = MIN_OFFSET_RATIO;
221595d5899Sopenharmony_ci    }
222595d5899Sopenharmony_ci    return darkenRatio;
223595d5899Sopenharmony_ci}
224595d5899Sopenharmony_ci
225595d5899Sopenharmony_cifloat BrightnessCalculationManager::GetDefaultBrightenOffsetDarkenRatio(float brightnessStartOrig,
226595d5899Sopenharmony_ci    float brightnessEndOrig, float brightnessStartNew)
227595d5899Sopenharmony_ci{
228595d5899Sopenharmony_ci    float darkenRatio;
229595d5899Sopenharmony_ci    if (std::abs(brightnessStartOrig) < SMALL_VALUE) {
230595d5899Sopenharmony_ci        darkenRatio = DEFAULT_OFFSET_RATIO;
231595d5899Sopenharmony_ci    } else {
232595d5899Sopenharmony_ci        float darkenRatioTmp = static_cast<float>(pow(brightnessEndOrig / brightnessStartOrig,
233595d5899Sopenharmony_ci            offsetBrightenRatioLeft));
234595d5899Sopenharmony_ci        darkenRatio = (offsetBrightenAlphaLeft * brightnessEndOrig / brightnessStartOrig)
235595d5899Sopenharmony_ci            + ((1 - offsetBrightenAlphaLeft) * darkenRatioTmp);
236595d5899Sopenharmony_ci    }
237595d5899Sopenharmony_ci    return darkenRatio;
238595d5899Sopenharmony_ci}
239595d5899Sopenharmony_ci
240595d5899Sopenharmony_civoid BrightnessCalculationManager::UpdateBrightnessOffset(float posBrightness, float lux)
241595d5899Sopenharmony_ci{
242595d5899Sopenharmony_ci    if (lux < AMBIENT_VALID_MIN_LUX || lux > AMBIENT_VALID_MAX_LUX) {
243595d5899Sopenharmony_ci        return;
244595d5899Sopenharmony_ci    }
245595d5899Sopenharmony_ci    if (std::abs(posBrightness) < SMALL_VALUE) {
246595d5899Sopenharmony_ci        ResetDefaultBrightnessOffset();
247595d5899Sopenharmony_ci        return;
248595d5899Sopenharmony_ci    }
249595d5899Sopenharmony_ci    mOffsetLux = lux;
250595d5899Sopenharmony_ci    mStartLuxDefaultBrightness = GetCurrentBrightness(lux);
251595d5899Sopenharmony_ci    mPosBrightness = posBrightness;
252595d5899Sopenharmony_ci    mDelta = mPosBrightness - mStartLuxDefaultBrightness;
253595d5899Sopenharmony_ci    DISPLAY_HILOGI(FEAT_BRIGHTNESS, "UpdateBrightnessOffset lux=%{public}f, mDelta=%{public}f, "\
254595d5899Sopenharmony_ci     "mPosBrightness=%{public}f", lux, mDelta, mPosBrightness);
255595d5899Sopenharmony_ci}
256595d5899Sopenharmony_ci
257595d5899Sopenharmony_civoid BrightnessCalculationManager::ResetDefaultBrightnessOffset()
258595d5899Sopenharmony_ci{
259595d5899Sopenharmony_ci    mOffsetLux = DEFAULT_NO_OFFSET_LUX;
260595d5899Sopenharmony_ci    mDelta = DEFAULT_OFFSET_DELTA;
261595d5899Sopenharmony_ci
262595d5899Sopenharmony_ci    mOffsetBrightnessLast = DEFAULT_OFFSET_BRIGHTNESS;
263595d5899Sopenharmony_ci    mLastLuxDefaultBrightness = DEFAULT_OFFSET_BRIGHTNESS;
264595d5899Sopenharmony_ci    mStartLuxDefaultBrightness = DEFAULT_OFFSET_BRIGHTNESS;
265595d5899Sopenharmony_ci    mPosBrightness = DEFAULT_OFFSET_BRIGHTNESS;
266595d5899Sopenharmony_ci    DISPLAY_HILOGI(FEAT_BRIGHTNESS, "ResetDefaultBrightnessOffset");
267595d5899Sopenharmony_ci}
268595d5899Sopenharmony_ci
269595d5899Sopenharmony_civoid BrightnessCalculationManager::UpdateCurveAmbientLux(float lux)
270595d5899Sopenharmony_ci{
271595d5899Sopenharmony_ci    if (mCurveLux != lux) {
272595d5899Sopenharmony_ci        mBrightnessCalculationCurve.UpdateCurveAmbientLux(lux);
273595d5899Sopenharmony_ci        mCurveLux = lux;
274595d5899Sopenharmony_ci    }
275595d5899Sopenharmony_ci}
276595d5899Sopenharmony_ci
277595d5899Sopenharmony_civoid BrightnessCalculationManager::SetGameModeEnable(bool isGameCurveEnable)
278595d5899Sopenharmony_ci{
279595d5899Sopenharmony_ci    mIsGameCurveEnable = isGameCurveEnable;
280595d5899Sopenharmony_ci}
281595d5899Sopenharmony_ci
282595d5899Sopenharmony_civoid BrightnessCalculationManager::SetCameraModeEnable(bool isCameraCurveEnable)
283595d5899Sopenharmony_ci{
284595d5899Sopenharmony_ci    mIsCameraCurveEnable = isCameraCurveEnable;
285595d5899Sopenharmony_ci}
286595d5899Sopenharmony_ci
287595d5899Sopenharmony_civoid BrightnessCalculationManager::UpdateCurrentUserId(int userId)
288595d5899Sopenharmony_ci{
289595d5899Sopenharmony_ci    mCurrentUserId = userId;
290595d5899Sopenharmony_ci    mBrightnessCalculationCurve.UpdateCurrentUserId(userId);
291595d5899Sopenharmony_ci}
292595d5899Sopenharmony_ci
293595d5899Sopenharmony_civoid BrightnessCalculationManager::ResetOffsetFromHumanFactor(bool isOffsetResetEnable, int minOffsetBrightness,
294595d5899Sopenharmony_ci    int maxOffsetBrightness)
295595d5899Sopenharmony_ci{
296595d5899Sopenharmony_ci    if (isOffsetResetEnable && std::abs(mPosBrightness) > SMALL_VALUE) {
297595d5899Sopenharmony_ci        if (mPosBrightness < minOffsetBrightness) {
298595d5899Sopenharmony_ci            mPosBrightness = minOffsetBrightness;
299595d5899Sopenharmony_ci            mOffsetBrightnessLast = minOffsetBrightness;
300595d5899Sopenharmony_ci            mDelta = mPosBrightness - mStartLuxDefaultBrightness;
301595d5899Sopenharmony_ci        }
302595d5899Sopenharmony_ci        if (mPosBrightness > maxOffsetBrightness) {
303595d5899Sopenharmony_ci            mPosBrightness = maxOffsetBrightness;
304595d5899Sopenharmony_ci            mOffsetBrightnessLast = maxOffsetBrightness;
305595d5899Sopenharmony_ci            mDelta = mPosBrightness - mStartLuxDefaultBrightness;
306595d5899Sopenharmony_ci        }
307595d5899Sopenharmony_ci    }
308595d5899Sopenharmony_ci}
309595d5899Sopenharmony_ci
310595d5899Sopenharmony_ciint BrightnessCalculationManager::GetDisplayIdWithDisplayMode(int displayMode)
311595d5899Sopenharmony_ci{
312595d5899Sopenharmony_ci    return mBrightnessCalculationCurve.GetDisplayIdWithDisplayMode(displayMode);
313595d5899Sopenharmony_ci}
314595d5899Sopenharmony_ci
315595d5899Sopenharmony_ciint BrightnessCalculationManager::GetSensorIdWithDisplayMode(int displayMode)
316595d5899Sopenharmony_ci{
317595d5899Sopenharmony_ci    return mBrightnessCalculationCurve.GetSensorIdWithDisplayMode(displayMode);
318595d5899Sopenharmony_ci}
319595d5899Sopenharmony_ci
320595d5899Sopenharmony_ciint BrightnessCalculationManager::GetDisplayIdWithFoldstatus(int foldStatus)
321595d5899Sopenharmony_ci{
322595d5899Sopenharmony_ci    return mBrightnessCalculationCurve.GetDisplayIdWithFoldstatus(foldStatus);
323595d5899Sopenharmony_ci}
324595d5899Sopenharmony_ci
325595d5899Sopenharmony_ciint BrightnessCalculationManager::GetSensorIdWithFoldstatus(int foldStatus)
326595d5899Sopenharmony_ci{
327595d5899Sopenharmony_ci    return mBrightnessCalculationCurve.GetSensorIdWithFoldstatus(foldStatus);
328595d5899Sopenharmony_ci}
329595d5899Sopenharmony_ci} // namespace DisplayPowerMgr
330595d5899Sopenharmony_ci} // namespace OHOS