From 35265935522ac3730e26f8682704315516f7cbe5 Mon Sep 17 00:00:00 2001 From: spl3g Date: Fri, 31 Oct 2025 19:25:30 +0300 Subject: Add ui knobs --- src/ui.h | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'src/ui.h') diff --git a/src/ui.h b/src/ui.h index 9651c41..3c89d3e 100644 --- a/src/ui.h +++ b/src/ui.h @@ -8,13 +8,17 @@ #include #include -#include "clay/clay.h" +#include "arena.h" + +#include "clay_renderer_SDL3.h" +#include "clay.h" #include "messages.h" static const Clay_Color COLOR_BG = (Clay_Color){45, 53, 59, 255}; static const Clay_Color COLOR_BG_INTER = (Clay_Color){52, 63, 68, 255}; static const Clay_Color COLOR_FG = (Clay_Color){211, 198, 170, 255}; static const Clay_Color COLOR_FG_INTER = (Clay_Color){227, 212, 181, 255}; +static const Clay_Color COLOR_ACCENT = (Clay_Color){133, 146, 137, 255}; typedef struct { char letter; @@ -23,12 +27,35 @@ typedef struct { bool keyboard_pressed; } KeyState; +typedef struct { + float value; + param_type param_type; + float range_start; + float range_end; +} KnobInfo; + +typedef struct { + KnobInfo volume; + KnobInfo attack; + KnobInfo decay; + KnobInfo sustain; + KnobInfo release; +} KnobSettings; + typedef struct { message_queue *msg_queue; KeyState *keys; size_t keys_amount; + KnobSettings *knob_settings; + Arena *arena; } UIData; +typedef struct { + UIData *ui_data; + float start_angle; + KnobInfo *info; +} UIKnobData; + void draw_ui(UIData *ui_data); #endif // UI_H_ -- cgit v1.2.3