diff options
author | samin.ryu <samin.ryu@lge.com> | 2012-08-03 23:59:41 +0900 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2012-08-17 14:11:40 -0700 |
commit | d57c7d55c9aef7fdae6c47bf03d84a3122b80847 (patch) | |
tree | 2ec6006a46bee342199e3c0492d4b3d54f179701 /liblight | |
parent | fb4cbddd0b33e8800e2a6b935e5be5ad62a1756b (diff) | |
download | display-d57c7d55c9aef7fdae6c47bf03d84a3122b80847.tar.gz |
led: add blink feature and remove specific values
Change-Id: I3a9ea70f972c2a12d584e557294ef8c47f7a3f12
Diffstat (limited to 'liblight')
-rw-r--r-- | liblight/lights.c | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/liblight/lights.c b/liblight/lights.c index 875d772a..49fb5900 100644 --- a/liblight/lights.c +++ b/liblight/lights.c @@ -52,6 +52,18 @@ char const*const BLUE_LED_FILE char const*const LCD_FILE = "/sys/class/leds/lcd-backlight/brightness"; +char const*const RED_FREQ_FILE + = "/sys/class/leds/red/device/grpfreq"; + +char const*const RED_PWM_FILE + = "/sys/class/leds/red/device/grppwm"; + +char const*const RED_BLINK_FILE + = "/sys/class/leds/red/device/blink"; + +char const*const LED_LOCK_UPDATE_FILE + = "/sys/class/leds/red/device/lock"; + /** * device methods */ @@ -135,27 +147,14 @@ set_speaker_light_locked(struct light_device_t* dev, colorRGB = state->color; #if 0 - ALOGD("set_speaker_light_locked colorRGB=%08X, onMS=%d, offMS=%d\n", - colorRGB, onMS, offMS); + ALOGD("set_speaker_light_locked mode %d, colorRGB=%08X, onMS=%d, offMS=%d\n", + state->flashMode, colorRGB, onMS, offMS); #endif red = (colorRGB >> 16) & 0xFF; green = (colorRGB >> 8) & 0xFF; blue = colorRGB & 0xFF; - // R, G, B value is among 0, 1, 2 - if (red > 128) red = 2; - else if (red <= 128 && red > 0) red = 1; - if (green > 128) green = 2; - else if (green <= 128 && green > 0) green = 1; - if (blue > 128) blue = 2; - else if (blue <= 128 && blue > 0) red = 1; - - write_int(RED_LED_FILE, red); - write_int(GREEN_LED_FILE, green); - write_int(BLUE_LED_FILE, blue); - - // TODO if (onMS > 0 && offMS > 0) { int totalMS = onMS + offMS; @@ -178,9 +177,19 @@ set_speaker_light_locked(struct light_device_t* dev, pwm = 0; } + write_int(LED_LOCK_UPDATE_FILE, 1); // for LED On/Off synchronization + + write_int(RED_LED_FILE, red); + write_int(GREEN_LED_FILE, green); + write_int(BLUE_LED_FILE, blue); + if (blink) { - write_int(RED_LED_FILE, freq); + write_int(RED_FREQ_FILE, freq); + write_int(RED_PWM_FILE, pwm); } + write_int(RED_BLINK_FILE, blink); + + write_int(LED_LOCK_UPDATE_FILE, 0); return 0; } |