+static void led_set_mode(unsigned char n, unsigned char mode)
+{
+ if (n < N_PWMLEDS) {
+ pwmled_set_mode(n, mode);
+ } else if (n < N_LEDS) {
+ gpio_set(n - N_PWMLEDS, mode);
+ }
+}
+
+void led_set_pattern(unsigned char n, pattern_t *pattern)
+{
+ if (!pattern)
+ pattern = off_pattern;
+
+ led_patterns[n] = pattern;
+ led_counters[n] = pattern->duration;
+ led_set_mode(n, pattern->mode);
+}
+