 /* This variable holds the LED color state. */
 CRGB leds[NUM_LEDS];
 
+/* All the different modes that are available. */
+#define MAX_MODES 1
+void modeSolid();
+void (*modes[MAX_MODES])() = {
+    &modeSolid
+};
+
+/* Currently active mode. */
+uint8_t activeMode = 0;
+
 /* Define the different parameters that can be changed using the rotary wheel. */
 #define PARAMETER_MODE 0
 #define PARAMETER_HUE 1

    CHSV(219, 255, 255)
};

void setup() {
    FastLED.addLeds<NEOPIXEL, PIN_LED>(leds, NUM_LEDS);
    pinMode(PIN_BUTTON, INPUT_PULLUP);

    return rval;
}

/* modeSolid draws a solid color across all LEDs, according to the parameters
 * HUE, SATURATION, VALUE. */
void modeSolid() {
    fill_solid(&leds[0], NUM_LEDS, CHSV(
        parameters[PARAMETER_HUE],
