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
52 lines
1.2 KiB
C++
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
|