hidl: livedisplay: Add binderized service implementation
* Change default ::implementation namespace to ::samsung
* Fill in required methods for used impls
* Cleanup passthrough code for used impls
* Remove unused impls
* Add and setup binderized service
Change-Id: I545a7c0ac8bf4fce04da73a0d39d4ac1938496f2
diff --git a/lineagehw/hidl/livedisplay/SunlightEnhancement.cpp b/lineagehw/hidl/livedisplay/SunlightEnhancement.cpp
index 8a3c329..5c3ca51 100644
--- a/lineagehw/hidl/livedisplay/SunlightEnhancement.cpp
+++ b/lineagehw/hidl/livedisplay/SunlightEnhancement.cpp
@@ -14,33 +14,64 @@
* limitations under the License.
*/
+
+#include <android-base/file.h>
+#include <android-base/strings.h>
+
+#include <fstream>
+
#include "SunlightEnhancement.h"
+using android::base::ReadFileToString;
+using android::base::Trim;
+using android::base::WriteStringToFile;
+
namespace vendor {
namespace lineage {
namespace livedisplay {
namespace V2_0 {
-namespace implementation {
+namespace samsung {
+
+static constexpr const char *kHBMPath = "/sys/class/lcd/panel/panel/auto_brightness";
+static constexpr const char *kSREPath = "/sys/class/mdnie/mdnie/outdoor";
// Methods from ::vendor::lineage::livedisplay::V2_0::ISunlightEnhancement follow.
+bool SunlightEnhancement::isSupported() {
+ std::fstream sre(kSREPath, sre.in | sre.out);
+ std::fstream hbm(kHBMPath, hbm.in | hbm.out);
+
+ if (hbm.good()) {
+ mHasHBM = true;
+ }
+
+ return sre.good();
+}
+
+// Methods from ::vendor::lineage::livedisplay::V2_0::IAdaptiveBacklight follow.
Return<bool> SunlightEnhancement::isEnabled() {
- // TODO implement
- return bool {};
+ std::string tmp;
+ int32_t statusSRE = 0;
+ int32_t statusHBM = 0;
+ if (ReadFileToString(kSREPath, &tmp)) {
+ statusSRE = std::stoi(Trim(tmp));
+ }
+
+ if (mHasHBM && ReadFileToString(kHBMPath, &tmp)) {
+ statusHBM = std::stoi(Trim(tmp));
+ }
+
+ return ((statusSRE == 1 && statusHBM == 6) || statusSRE == 1);
}
Return<bool> SunlightEnhancement::setEnabled(bool enabled) {
- // TODO implement
- return bool {};
+ if (mHasHBM) {
+ WriteStringToFile(enabled ? "6" : "0", kHBMPath, true);
+ }
+
+ return WriteStringToFile(enabled ? "1" : "0", kSREPath, true);
}
-
-// Methods from ::android::hidl::base::V1_0::IBase follow.
-
-//ISunlightEnhancement* HIDL_FETCH_ISunlightEnhancement(const char* /* name */) {
- //return new SunlightEnhancement();
-//}
-//
-} // namespace implementation
+} // namespace samsung
} // namespace V2_0
} // namespace livedisplay
} // namespace lineage