summaryrefslogtreecommitdiffstats
path: root/services/core/jni
diff options
context:
space:
mode:
authorAdrianDC <radian.dc@gmail.com>2015-08-18 19:33:18 +0200
committerSteve Kondik <steve@cyngn.com>2015-10-28 13:30:30 -0700
commit89d8d436e156a3894d6bdee88607c6d69cbc243a (patch)
treed54004e0a28777024eaa4765e64e617337684c2c /services/core/jni
parent3d8260d65d28a22f2762713fdabf98ca7a81e350 (diff)
downloadframeworks_base-89d8d436e156a3894d6bdee88607c6d69cbc243a.zip
frameworks_base-89d8d436e156a3894d6bdee88607c6d69cbc243a.tar.gz
frameworks_base-89d8d436e156a3894d6bdee88607c6d69cbc243a.tar.bz2
LEDs Brightness [2/2]: Lights notifications brightness support
Implement the support of an overall brightness control for the LEDs. The setting is deactivated by default and will be ignored by the unimplemented phones. Current LibLights will simply not use the new variable. Changes includes : frameworks/base packages/Apps/Settings Change-Id: I1c0de01b1c6a2a2cf1432028a2e69f90b2373b2c Signed-off-by: AdrianDC <radian.dc@gmail.com>
Diffstat (limited to 'services/core/jni')
-rw-r--r--services/core/jni/com_android_server_lights_LightsService.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/services/core/jni/com_android_server_lights_LightsService.cpp b/services/core/jni/com_android_server_lights_LightsService.cpp
index 9c164ed..954619b 100644
--- a/services/core/jni/com_android_server_lights_LightsService.cpp
+++ b/services/core/jni/com_android_server_lights_LightsService.cpp
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2009 The Android Open Source Project
+ * Copyright (C) 2015 The CyanogenMod Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -110,15 +111,26 @@ static void finalize_native(JNIEnv* /* env */, jobject /* clazz */, jlong ptr)
}
static void setLight_native(JNIEnv* /* env */, jobject /* clazz */, jlong ptr,
- jint light, jint colorARGB, jint flashMode, jint onMS, jint offMS, jint brightnessMode)
+ jint light, jint colorARGB, jint flashMode, jint onMS, jint offMS, jint brightnessMode,
+ jint brightnessLevel)
{
Devices* devices = (Devices*)ptr;
light_state_t state;
+ int colorAlpha;
if (light < 0 || light >= LIGHT_COUNT || devices->lights[light] == NULL) {
return ;
}
+ if (brightnessLevel > 0 && brightnessLevel <= 0xFF) {
+ colorAlpha = (colorARGB & 0xFF000000) >> 24;
+ if (colorAlpha == 0x00) {
+ colorAlpha = 0xFF;
+ }
+ colorAlpha = (colorAlpha * brightnessLevel) / 0xFF;
+ colorARGB = (colorAlpha << 24) + (colorARGB & 0x00FFFFFF);
+ }
+
memset(&state, 0, sizeof(light_state_t));
state.color = colorARGB;
state.flashMode = flashMode;
@@ -135,7 +147,7 @@ static void setLight_native(JNIEnv* /* env */, jobject /* clazz */, jlong ptr,
static JNINativeMethod method_table[] = {
{ "init_native", "()J", (void*)init_native },
{ "finalize_native", "(J)V", (void*)finalize_native },
- { "setLight_native", "(JIIIIII)V", (void*)setLight_native },
+ { "setLight_native", "(JIIIIIII)V", (void*)setLight_native },
};
int register_android_server_LightsService(JNIEnv *env)