Files
device_samsung_a71-common/livedisplay/AdaptiveBacklight.cpp
Atakan 9d772afd6e a71-common: livedisplay: Stop controlling ALPM
ALPM controls display LPM for AoD and should be controlled by Doze services, not by the user.

Import AdaptiveBacklight from hardware_samsung to give proper control to the user.

Change-Id: I51860027c4c4ae062945dd982f9ae69e1ba1cf2d
2025-09-02 12:18:31 +01:00

52 lines
1.2 KiB
C++

/*
* Copyright (C) 2024-2025 The LineageOS Project
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <android-base/file.h>
#include <android-base/strings.h>
#include <fstream>
#include "AdaptiveBacklight.h"
using android::base::ReadFileToString;
using android::base::Trim;
using android::base::WriteStringToFile;
namespace vendor {
namespace lineage {
namespace livedisplay {
namespace V2_0 {
namespace samsung {
static constexpr const char* kBacklightPath = "/sys/class/lcd/panel/power_reduce";
bool AdaptiveBacklight::isSupported() {
std::fstream backlight(kBacklightPath, backlight.in | backlight.out);
return backlight.good();
}
// Methods from ::vendor::lineage::livedisplay::V2_0::IAdaptiveBacklight follow.
Return<bool> AdaptiveBacklight::isEnabled() {
std::string tmp;
int32_t contents = 0;
if (ReadFileToString(kBacklightPath, &tmp)) {
contents = std::stoi(Trim(tmp));
}
return contents > 0;
}
Return<bool> AdaptiveBacklight::setEnabled(bool enabled) {
return WriteStringToFile(enabled ? "1" : "0", kBacklightPath, true);
}
} // namespace samsung
} // namespace V2_0
} // namespace livedisplay
} // namespace lineage
} // namespace vendor