aboutsummaryrefslogtreecommitdiff
path: root/src/ui.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui.h')
-rw-r--r--src/ui.h29
1 files changed, 28 insertions, 1 deletions
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 <SDL3/SDL_scancode.h>
#include <SDL3/SDL_keycode.h>
-#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;
@@ -24,11 +28,34 @@ typedef struct {
} 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_