/* * Copyright (C) 2021 The LineageOS Project * * SPDX-License-Identifier: Apache-2.0 */ #pragma once #include #include #include "samsung_lights.h" using ::aidl::android::hardware::light::HwLightState; using ::aidl::android::hardware::light::HwLight; namespace aidl { namespace android { namespace hardware { namespace light { class Lights : public BnLights { public: Lights(); ndk::ScopedAStatus setLightState(int32_t id, const HwLightState& state) override; ndk::ScopedAStatus getLights(std::vector *_aidl_return) override; private: void handleBacklight(const HwLightState& state); #ifdef BUTTON_BRIGHTNESS_NODE void handleButtons(const HwLightState& state); #endif /* BUTTON_BRIGHTNESS_NODE */ #ifdef LED_BLINK_NODE void handleBattery(const HwLightState& state); void handleNotifications(const HwLightState& state); void handleAttention(const HwLightState& state); void setNotificationLED(); uint32_t calibrateColor(uint32_t color, int32_t brightness); HwLightState mAttentionState; HwLightState mBatteryState; HwLightState mNotificationState; #endif /* LED_BLINK_NODE */ uint32_t rgbToBrightness(const HwLightState& state); std::mutex mLock; std::unordered_map> mLights; }; } // namespace light } // namespace hardware } // namespace android } // namespace aidl