diff options
author | Bad Diode <bd@badd10de.dev> | 2023-08-08 18:50:46 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2023-08-08 18:50:46 +0200 |
commit | bb4af22481a27d9324f5377b7024e3592d4227ff (patch) | |
tree | 7b6704fc1f8f719eb6a9abe4e5c7c220e142dbb0 /src/main.c | |
parent | 8aa5155ecfbaaa2e67f82561352a5857bc86d39e (diff) | |
download | stepper-bb4af22481a27d9324f5377b7024e3592d4227ff.tar.gz stepper-bb4af22481a27d9324f5377b7024e3592d4227ff.zip |
Update main UI with new 1.7 design
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 38 |
1 files changed, 22 insertions, 16 deletions
@@ -14,11 +14,6 @@ WITH REGARD TO THIS SOFTWARE. | |||
14 | // UI tweaks. | 14 | // UI tweaks. |
15 | // - Add custom user themes | 15 | // - Add custom user themes |
16 | // - Animations for cursor movement/current step highlight. (A fade out maybe?) | 16 | // - Animations for cursor movement/current step highlight. (A fade out maybe?) |
17 | // - Improve "grey" cursor with dithering instead. | ||
18 | // - Remove thin cursor option and make the fat one default, it's just better. | ||
19 | // - Settings page overhaul. | ||
20 | // - Make sure there is an ALL notification when modifying channel params so | ||
21 | // that it's clear it's affecting all triggers. | ||
22 | // | 17 | // |
23 | // Quality of life improvements. | 18 | // Quality of life improvements. |
24 | // - When not on play mode, adjusting a note or a parameter triggers the sound. | 19 | // - When not on play mode, adjusting a note or a parameter triggers the sound. |
@@ -27,7 +22,6 @@ WITH REGARD TO THIS SOFTWARE. | |||
27 | // - Undo/Redo. | 22 | // - Undo/Redo. |
28 | // | 23 | // |
29 | // Advanced | 24 | // Advanced |
30 | // - Scale mode for entering notes. | ||
31 | // - Add tap tempo for BPM. | 25 | // - Add tap tempo for BPM. |
32 | // - Allow "marking" several trigs to be able to copy/paste them and/or adjust | 26 | // - Allow "marking" several trigs to be able to copy/paste them and/or adjust |
33 | // their parameters. | 27 | // their parameters. |
@@ -37,19 +31,30 @@ WITH REGARD TO THIS SOFTWARE. | |||
37 | // - Per trig LFO? How would we go about this? There is at least one empty slot | 31 | // - Per trig LFO? How would we go about this? There is at least one empty slot |
38 | // in all channels. LFO amount? LFO speed? Would need a dedicated page for | 32 | // in all channels. LFO amount? LFO speed? Would need a dedicated page for |
39 | // configuring LFOs | 33 | // configuring LFOs |
40 | // - Multiple pattern chains per bank that we can toggle between, gotta study | ||
41 | // if they fit in the SRAM. | ||
42 | // - Make sure bank switching is queued like patterns. | ||
43 | // - Add settings for "performance mode" in which banks are not saved by | ||
44 | // default while changing patterns. | ||
45 | // - Make sure sync works with the same cable for in/out. | ||
46 | // - Per-channel N steps to create polymeters? | 34 | // - Per-channel N steps to create polymeters? |
47 | // - Higher resolution clock to allow for microtiming and more accurate tempo. | ||
48 | // - Study how to better embed data into the cart that doesn't involve the | 35 | // - Study how to better embed data into the cart that doesn't involve the |
49 | // build system to generate .c files. Just use the linker to put binary data | 36 | // build system to generate .c files. Just use the linker to put binary data |
50 | // into the ROM. | 37 | // into the ROM. |
38 | // | ||
39 | // WIP (1.7) | ||
40 | // - Scale mode for entering notes. | ||
51 | // - Improve SRAM saving to make room for longer patterns and/or more banks. | 41 | // - Improve SRAM saving to make room for longer patterns and/or more banks. |
52 | // - Add CLEAR ALL to the settings menu. | 42 | // - Add CLEAR ALL to the settings menu. |
43 | // - Higher resolution clock to allow for microtiming and more accurate tempo. | ||
44 | // - Multiple pattern chains per bank that we can toggle between, gotta study | ||
45 | // if they fit in the SRAM. | ||
46 | // - Make sure bank switching is queued like patterns. | ||
47 | // - Add settings for "performance mode" in which banks are not saved by | ||
48 | // default while changing patterns. | ||
49 | // - Make sure sync works with the same cable for in/out. | ||
50 | // - Improve "grey" cursor with dithering instead. | ||
51 | // - Remove thin cursor option and make the fat one default, it's just better. | ||
52 | // - Settings page overhaul. | ||
53 | // - Make sure there is an ALL notification when modifying channel params so | ||
54 | // that it's clear it's affecting all triggers. | ||
55 | // - Blank patterns could show up as empty on the pattern view for better | ||
56 | // separation and section organization. | ||
57 | // - Study more improvements for a "performance mode". | ||
53 | // | 58 | // |
54 | 59 | ||
55 | #include "gba/gba.h" | 60 | #include "gba/gba.h" |
@@ -65,7 +70,6 @@ WITH REGARD TO THIS SOFTWARE. | |||
65 | 70 | ||
66 | void | 71 | void |
67 | render_sequencer(void) { | 72 | render_sequencer(void) { |
68 | PROF(draw_rect(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 1), clear_cycles); | ||
69 | if (redraw_trigs) { | 73 | if (redraw_trigs) { |
70 | PROF(draw_triggers(), draw_trigs_cycles); | 74 | PROF(draw_triggers(), draw_trigs_cycles); |
71 | redraw_trigs = false; | 75 | redraw_trigs = false; |
@@ -89,6 +93,9 @@ render_sequencer(void) { | |||
89 | if (redraw_play_pause) { | 93 | if (redraw_play_pause) { |
90 | PROF(draw_play(), draw_btn_cycles); | 94 | PROF(draw_play(), draw_btn_cycles); |
91 | PROF(draw_stop(), draw_btn_cycles); | 95 | PROF(draw_stop(), draw_btn_cycles); |
96 | // TODO: Move to separate if condition | ||
97 | PROF(draw_settings(), draw_btn_cycles); | ||
98 | PROF(draw_scale(), draw_btn_cycles); | ||
92 | redraw_play_pause = false; | 99 | redraw_play_pause = false; |
93 | } | 100 | } |
94 | if (redraw_piano_note) { | 101 | if (redraw_piano_note) { |
@@ -112,7 +119,6 @@ render_sequencer(void) { | |||
112 | 119 | ||
113 | void | 120 | void |
114 | render_settings(void) { | 121 | render_settings(void) { |
115 | PROF(draw_rect(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 1), clear_cycles); | ||
116 | txt_drawf_small("settings", 11, 5, COL_FG) | 122 | txt_drawf_small("settings", 11, 5, COL_FG) |
117 | txt_printf("\n\n\n"); | 123 | txt_printf("\n\n\n"); |
118 | txt_printf(" SYNC: %s\n\n", sync_setting_str[settings.sync]); | 124 | txt_printf(" SYNC: %s\n\n", sync_setting_str[settings.sync]); |
@@ -139,7 +145,7 @@ render(void) { | |||
139 | } break; | 145 | } break; |
140 | } | 146 | } |
141 | // DEBUG: Ensuring the saved data don't exceed SRAM size (32k). | 147 | // DEBUG: Ensuring the saved data don't exceed SRAM size (32k). |
142 | // txt_drawf("SIZE: %lu", 0, 0, COL_ACC_1, sizeof(Metadata) + sizeof(patterns) * 4 + sizeof(chain) * 4); | 148 | txt_drawf("SIZE: %lu", 0, 0, COL_ACC_1, sizeof(Metadata) + sizeof(patterns) * 6 + sizeof(chain) * 6); |
143 | } | 149 | } |
144 | 150 | ||
145 | void | 151 | void |