diff options
Diffstat (limited to 'src/settings.c')
-rw-r--r-- | src/settings.c | 63 |
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 | |||
4 | static Settings settings = {0}; | ||
5 | static int settings_cursor_loc = 0; | ||
6 | |||
7 | void | ||
8 | draw_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 | |||
16 | void | ||
17 | handle_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 | } | ||