Skip to content

Commit

Permalink
lights: Add CAPS, FUNC, and WIMAX lights
Browse files Browse the repository at this point in the history
  • Loading branch information
hyperb1iss committed Aug 17, 2010
1 parent e1e211e commit 4c19a2b
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions liblights/lights.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ static int g_trackball = -1;
static int g_buttons = 0;
static int g_attention = 0;
static int g_haveAmberLed = 0;
static int g_wimax = 0;
static int g_caps = 0;
static int g_func = 0;

char const*const TRACKBALL_FILE
= "/sys/class/leds/jogball-backlight/brightness";
Expand Down Expand Up @@ -81,6 +84,16 @@ char const*const KEYBOARD_FILE
char const*const BUTTON_FILE
= "/sys/class/leds/button-backlight/brightness";

char const*const CAPS_FILE
= "/sys/class/leds/caps/brightness";

char const*const FUNC_FILE
= "/sys/class/leds/func/brightness";

char const*const WIMAX_FILE
= "/sys/class/leds/wimax/brightness";


/**
* device methods
*/
Expand Down Expand Up @@ -195,6 +208,45 @@ set_light_buttons(struct light_device_t* dev,
return err;
}

static int
set_light_wimax(struct light_device_t* dev,
struct light_state_t const* state)
{
int err = 0;
int brightness = rgb_to_brightness(state);
pthread_mutex_lock(&g_lock);
g_wimax = brightness;
err = write_int(WIMAX_FILE, brightness);
pthread_mutex_unlock(&g_lock);
return err;
}

static int
set_light_caps(struct light_device_t* dev,
struct light_state_t const* state)
{
int err = 0;
int on = is_lit(state);
pthread_mutex_lock(&g_lock);
g_caps = on;
err = write_int(CAPS_FILE, on?255:0);
pthread_mutex_unlock(&g_lock);
return err;
}

static int
set_light_func(struct light_device_t* dev,
struct light_state_t const* state)
{
int err = 0;
int on = is_lit(state);
pthread_mutex_lock(&g_lock);
g_func = on;
err = write_int(FUNC_FILE, on?255:0);
pthread_mutex_unlock(&g_lock);
return err;
}

static int
set_speaker_light_locked(struct light_device_t* dev,
struct light_state_t const* state)
Expand Down Expand Up @@ -383,6 +435,15 @@ static int open_lights(const struct hw_module_t* module, char const* name,
else if (0 == strcmp(LIGHT_ID_ATTENTION, name)) {
set_light = set_light_attention;
}
else if (0 == strcmp(LIGHT_ID_CAPS, name)) {
set_light = set_light_caps;
}
else if (0 == strcmp(LIGHT_ID_FUNC, name)) {
set_light = set_light_func;
}
else if (0 == strcmp(LIGHT_ID_WIMAX, name)) {
set_light = set_light_wimax;
}
else {
return -EINVAL;
}
Expand Down

0 comments on commit 4c19a2b

Please sign in to comment.