hidl: Don't compile setNotificationLED if there is no blink node
authorAndreas Schneider <asn@cryptomilk.org>
Fri, 13 Mar 2020 19:26:02 +0000 (20:26 +0100)
committerJan Altensen <info@stricted.net>
Thu, 26 Nov 2020 03:07:44 +0000 (05:07 +0200)
For example exynos9820 doesn't provide a LED.

Change-Id: I745f179fae52816c915833321123c8f49ba0a7d2
(cherry picked from commit eeb666cf009bb24951ff321aa64ff4938c716ac4)

hidl/light/Light.cpp
hidl/light/Light.h

index 3e9b17f82fb91295e5132bde99c48205d5061e62..464c3ea6e39b836f75193e307d1fced0573bc810 100644 (file)
@@ -55,12 +55,14 @@ Light::Light() {
                     std::bind(&Light::handleBacklight, this, std::placeholders::_1));
 #ifdef BUTTON_BRIGHTNESS_NODE
     mLights.emplace(Type::BUTTONS, std::bind(&Light::handleButtons, this, std::placeholders::_1));
-#endif
+#endif /* BUTTON_BRIGHTNESS_NODE */
+#ifdef LED_BLINK_NODE
     mLights.emplace(Type::BATTERY, std::bind(&Light::handleBattery, this, std::placeholders::_1));
     mLights.emplace(Type::NOTIFICATIONS,
                     std::bind(&Light::handleNotifications, this, std::placeholders::_1));
     mLights.emplace(Type::ATTENTION,
                     std::bind(&Light::handleAttention, this, std::placeholders::_1));
+#endif /* LED_BLINK_NODE */
 }
 
 Return<Status> Light::setLight(Type type, const LightState& state) {
@@ -103,6 +105,7 @@ void Light::handleButtons(const LightState& state) {
 }
 #endif
 
+#ifdef LED_BLINK_NODE
 void Light::handleBattery(const LightState& state) {
     mBatteryState = state;
     setNotificationLED();
@@ -123,14 +126,14 @@ void Light::setNotificationLED() {
     LightState state;
 #ifdef LED_BLN_NODE
     bool bln = false;
-#endif
+#endif /* LED_BLN_NODE */
 
     if (mNotificationState.color & COLOR_MASK) {
         adjusted_brightness = LED_BRIGHTNESS_NOTIFICATION;
         state = mNotificationState;
 #ifdef LED_BLN_NODE
         bln = true;
-#endif
+#endif /* LED_BLN_NODE */
     } else if (mAttentionState.color & COLOR_MASK) {
         adjusted_brightness = LED_BRIGHTNESS_ATTENTION;
         state = mAttentionState;
@@ -164,8 +167,18 @@ void Light::setNotificationLED() {
     if (bln) {
         set(LED_BLN_NODE, (state.color & COLOR_MASK) ? 1 : 0);
     }
-#endif
+#endif /* LED_BLN_NODE */
+}
+
+uint32_t Light::calibrateColor(uint32_t color, int32_t brightness) {
+    uint32_t red = ((color >> 16) & 0xFF) * LED_ADJUSTMENT_R;
+    uint32_t green = ((color >> 8) & 0xFF) * LED_ADJUSTMENT_G;
+    uint32_t blue = (color & 0xFF) * LED_ADJUSTMENT_B;
+
+    return (((red * brightness) / 255) << 16) + (((green * brightness) / 255) << 8) +
+           ((blue * brightness) / 255);
 }
+#endif /* LED_BLINK_NODE */
 
 Return<void> Light::getSupportedTypes(getSupportedTypes_cb _hidl_cb) {
     std::vector<Type> types;
@@ -186,15 +199,6 @@ uint32_t Light::rgbToBrightness(const LightState& state) {
            8;
 }
 
-uint32_t Light::calibrateColor(uint32_t color, int32_t brightness) {
-    uint32_t red = ((color >> 16) & 0xFF) * LED_ADJUSTMENT_R;
-    uint32_t green = ((color >> 8) & 0xFF) * LED_ADJUSTMENT_G;
-    uint32_t blue = (color & 0xFF) * LED_ADJUSTMENT_B;
-
-    return (((red * brightness) / 255) << 16) + (((green * brightness) / 255) << 8) +
-           ((blue * brightness) / 255);
-}
-
 }  // namespace implementation
 }  // namespace V2_0
 }  // namespace light
index b256cc9a4009b113f97be99139f48d7fd592a363..a318e15191c4d93d8fac7a2c748e4b0a6bd9f022 100644 (file)
@@ -48,17 +48,20 @@ struct Light : public ILight {
     void handleBacklight(const LightState& state);
 #ifdef BUTTON_BRIGHTNESS_NODE
     void handleButtons(const LightState& state);
-#endif
+#endif /* BUTTON_BRIGHTNESS_NODE */
+#ifdef LED_BLINK_NODE
     void handleBattery(const LightState& state);
     void handleNotifications(const LightState& state);
     void handleAttention(const LightState& state);
     void setNotificationLED();
-    uint32_t rgbToBrightness(const LightState& state);
     uint32_t calibrateColor(uint32_t color, int32_t brightness);
 
     LightState mAttentionState;
     LightState mBatteryState;
     LightState mNotificationState;
+#endif /* LED_BLINK_NODE */
+
+    uint32_t rgbToBrightness(const LightState& state);
 
     std::mutex mLock;
     std::unordered_map<Type, std::function<void(const LightState&)>> mLights;