diff --git a/.vscode/settings.json b/.vscode/settings.json index d41d68c..42bb310 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,7 +3,8 @@ "*.py": "python", "app.h": "c", "time.h": "c", - "math.h": "c" + "math.h": "c", + "color_utils.h": "c" }, "C_Cpp.errorSquiggles": "enabled", "C_Cpp.default.includePath": [ diff --git a/include/shader.h b/include/shader.h index 96999c7..32fa36c 100644 --- a/include/shader.h +++ b/include/shader.h @@ -3,9 +3,15 @@ #include "color_utils.h" +typedef enum LightMode { + LIGHT_MODE_RAINBOW, + LIGHT_MODE_WHITE, +} LightMode; + typedef struct { int index; double time; + LightMode mode; } Status; void init_status(Status* status); diff --git a/src/shader.c b/src/shader.c index 55d3813..f047ee3 100644 --- a/src/shader.c +++ b/src/shader.c @@ -3,6 +3,7 @@ void init_status(Status* status) { status->index = 0; status->time = 0; + status->mode = LIGHT_MODE_WHITE; } Color shader(Status* status) { @@ -10,5 +11,11 @@ Color shader(Status* status) { return hex_to_color(0xFFFFFF); } - return hsv_to_color(status->time * 120 + status->index * 6, 1, 1); + switch (status->mode) { + case LIGHT_MODE_RAINBOW: + return hsv_to_color(status->time * 120 + status->index * 6, 1, 1); + + default: + return hex_to_color(0xFFFFFF); + } } \ No newline at end of file