aboutsummaryrefslogtreecommitdiffstats
path: root/src/settings.c
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2023-05-28 19:17:48 +0200
committerBad Diode <bd@badd10de.dev>2023-05-28 19:17:48 +0200
commit52bdd0d79c77df0a7752fd15ebcc730f9e9796b1 (patch)
tree1efa9654ecdc5a933976bbbb37d9ec18562c1320 /src/settings.c
parent70b7b9f719ab673ff776cfc0f9b7bc67dc88bac1 (diff)
downloadstepper-52bdd0d79c77df0a7752fd15ebcc730f9e9796b1.tar.gz
stepper-52bdd0d79c77df0a7752fd15ebcc730f9e9796b1.zip
Refactor settings into own files
Diffstat (limited to 'src/settings.c')
-rw-r--r--src/settings.c63
1 files changed, 63 insertions, 0 deletions
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 @@
1#include "settings.h"
2#include "save.h"
3
4static Settings settings = {0};
5static int settings_cursor_loc = 0;
6
7void
8draw_settings_cursor(void) {
9 int x = 6;
10 int y = 17 + settings_cursor_loc * 12;
11 draw_line(x + 1, y + 3, x + 1, y + 7, COL_CYAN);
12 draw_line(x + 2, y + 4, x + 2, y + 6, COL_CYAN);
13 draw_line(x + 3, y + 5, x + 3, y + 5, COL_CYAN);
14}
15
16void
17handle_settings_input(void) {
18 if (key_tap(KEY_DOWN)) {
19 if (settings_cursor_loc == (N_SETTINGS - 1)) {
20 settings_cursor_loc = 0;
21 } else {
22 settings_cursor_loc++;
23 }
24 clear_screen = true;
25 }
26 if (key_tap(KEY_UP)) {
27 if (settings_cursor_loc == 0) {
28 settings_cursor_loc = N_SETTINGS - 1;
29 } else {
30 settings_cursor_loc--;
31 }
32 clear_screen = true;
33 }
34 if (key_tap(KEY_R)) {
35 switch (settings_cursor_loc) {
36 case 0: {
37 if ((settings.sync + 1) >= SYNC_NUM) {
38 settings.sync = 0;
39 } else {
40 settings.sync++;
41 }
42 } break;
43 }
44 save_metadata();
45 clear_screen = true;
46 }
47 if (key_tap(KEY_L)) {
48 switch (settings_cursor_loc) {
49 case 0: {
50 if (settings.sync == 0) {
51 settings.sync = SYNC_NUM - 1;
52 } else {
53 settings.sync--;
54 }
55 } break;
56 }
57 save_metadata();
58 clear_screen = true;
59 }
60 if (key_tap(KEY_B)) {
61 next_scene = SCENE_SEQUENCER;
62 }
63}