diff options
author | AdrianDC <radian.dc@gmail.com> | 2015-08-18 19:33:18 +0200 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-10-28 13:30:30 -0700 |
commit | 89d8d436e156a3894d6bdee88607c6d69cbc243a (patch) | |
tree | d54004e0a28777024eaa4765e64e617337684c2c /services/core/jni | |
parent | 3d8260d65d28a22f2762713fdabf98ca7a81e350 (diff) | |
download | frameworks_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.cpp | 16 |
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) |