25 char green_led_states;
    27 char center_led_state;
    30 char held_green_states;
    31 Timeout blink_led_timeout;
    35     return (green_led_states << 8) + red_led_states;
    40     green_led_states = green;
    47     i2c_setup.IF_set_base_LED(state);
    52     green_led_states = green;
    64     if(state % 2 == 1) red_led_states |= 1 << led;
    65     else red_led_states &= ~(1 << led);
    66     if(state / 2) green_led_states |= 1 << led;
    67     else green_led_states &= ~(1 << led);
    85     center_led_brightness = brightness;
    86     center_led_state = state;
    87     switch(center_led_state) {
    89             center_led_red.write(0);
    90             center_led_green.write(0);
    93             center_led_red.write(center_led_brightness / 4);
    94             center_led_green.write(0);
    97             center_led_red.write(0);
    98             center_led_green.write(center_led_brightness);
   101             center_led_red.write(center_led_brightness / 4);
   102             center_led_green.write(center_led_brightness);
   114     held_red_states = red_led_states;
   115     held_green_states = green_led_states;
   120     set_leds(held_green_states,held_red_states);
   123 void Led::IF_init_leds()
   125     green_led_states = 0;
   127     center_led_red.period_us(100);
   128     center_led_green.period_us(100);
   132 void Led::IF_update_leds()
   134     char led_byte_0 =  (((green_led_states & (1 << 3)) == 0) << 7) +
   135                        (((green_led_states & (1 << 2)) == 0) << 5) +
   136                        (((green_led_states & (1 << 1)) == 0) << 3) +
   137                        (((green_led_states & (1)) == 0) << 1) +
   138                        (((red_led_states & (1 << 3)) == 0) << 6) +
   139                        (((red_led_states & (1 << 2)) == 0) << 4) +
   140                        (((red_led_states & (1 << 1)) == 0) << 2) +
   141                        (((red_led_states & (1)) == 0));
   142     char led_byte_1 =  (((green_led_states & (1 << 7)) == 0) << 7) +
   143                        (((green_led_states & (1 << 6)) == 0) << 5) +
   144                        (((green_led_states & (1 << 5)) == 0) << 3) +
   145                        (((green_led_states & (1 << 4)) == 0) << 1) +
   146                        (((red_led_states & (1 << 7)) == 0) << 6) +
   147                        (((red_led_states & (1 << 6)) == 0) << 4) +
   148                        (((red_led_states & (1 << 5)) == 0) << 2) +
   149                        (((red_led_states & (1 << 4)) == 0));
   150     i2c_setup.IF_write_to_led_ic(led_byte_0,led_byte_1);
 void set_leds(char green, char red)
void set_center_led_brightness(float brightness)
void set_center_led(char state)
unsigned short get_led_states(void)
void set_base_led(char state)
void set_led(char led, char state)
void set_green_leds(char green)
void save_led_states(void)
void restore_led_states(void)
void blink_leds(float timeout)
void set_red_leds(char red)