From 52bdd0d79c77df0a7752fd15ebcc730f9e9796b1 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Sun, 28 May 2023 19:17:48 +0200 Subject: Refactor settings into own files --- src/settings.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/settings.c (limited to 'src/settings.c') diff --git a/src/settings.c b/src/settings.c new file mode 100644 index 0000000..fd5b090 --- /dev/null +++ b/src/settings.c @@ -0,0 +1,63 @@ +#include "settings.h" +#include "save.h" + +static Settings settings = {0}; +static int settings_cursor_loc = 0; + +void +draw_settings_cursor(void) { + int x = 6; + int y = 17 + settings_cursor_loc * 12; + draw_line(x + 1, y + 3, x + 1, y + 7, COL_CYAN); + draw_line(x + 2, y + 4, x + 2, y + 6, COL_CYAN); + draw_line(x + 3, y + 5, x + 3, y + 5, COL_CYAN); +} + +void +handle_settings_input(void) { + if (key_tap(KEY_DOWN)) { + if (settings_cursor_loc == (N_SETTINGS - 1)) { + settings_cursor_loc = 0; + } else { + settings_cursor_loc++; + } + clear_screen = true; + } + if (key_tap(KEY_UP)) { + if (settings_cursor_loc == 0) { + settings_cursor_loc = N_SETTINGS - 1; + } else { + settings_cursor_loc--; + } + clear_screen = true; + } + if (key_tap(KEY_R)) { + switch (settings_cursor_loc) { + case 0: { + if ((settings.sync + 1) >= SYNC_NUM) { + settings.sync = 0; + } else { + settings.sync++; + } + } break; + } + save_metadata(); + clear_screen = true; + } + if (key_tap(KEY_L)) { + switch (settings_cursor_loc) { + case 0: { + if (settings.sync == 0) { + settings.sync = SYNC_NUM - 1; + } else { + settings.sync--; + } + } break; + } + save_metadata(); + clear_screen = true; + } + if (key_tap(KEY_B)) { + next_scene = SCENE_SEQUENCER; + } +} -- cgit v1.2.1