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/drawing.c | |
parent | 8aa5155ecfbaaa2e67f82561352a5857bc86d39e (diff) | |
download | stepper-bb4af22481a27d9324f5377b7024e3592d4227ff.tar.gz stepper-bb4af22481a27d9324f5377b7024e3592d4227ff.zip |
Update main UI with new 1.7 design
Diffstat (limited to 'src/drawing.c')
-rw-r--r-- | src/drawing.c | 77 |
1 files changed, 49 insertions, 28 deletions
diff --git a/src/drawing.c b/src/drawing.c index a203f1c..c07b46d 100644 --- a/src/drawing.c +++ b/src/drawing.c | |||
@@ -126,6 +126,8 @@ draw_trig_cursor(size_t i, u8 clr) { | |||
126 | 126 | ||
127 | void | 127 | void |
128 | draw_right_col_cursor(int i, u8 clr) { | 128 | draw_right_col_cursor(int i, u8 clr) { |
129 | // TODO:... | ||
130 | return; | ||
129 | size_t x0 = 0; | 131 | size_t x0 = 0; |
130 | size_t x1 = 0; | 132 | size_t x1 = 0; |
131 | size_t y = 0; | 133 | size_t y = 0; |
@@ -192,21 +194,29 @@ draw_current_step(u8 step, u8 clr) { | |||
192 | 194 | ||
193 | void | 195 | void |
194 | draw_bank_buttons() { | 196 | draw_bank_buttons() { |
195 | size_t x = BANK_START_X; | 197 | size_t x = BANK_START_X + 1; |
196 | size_t y = BANK_START_Y; | 198 | size_t y = BANK_START_Y; |
197 | txt_drawf_small("BANK", x - 2, y - 10, COL_FG); | 199 | txt_drawf_small("BANK", x - 3, y - 10, COL_FG); |
198 | char bank_names[] = { | 200 | char bank_names[] = { |
199 | 'A', 'B', 'C', 'D', | 201 | 'A', 'B', 'C', 'D', 'E', 'F' |
202 | }; | ||
203 | s16 x_offset[] = { | ||
204 | -8, 8, -8, 8, -8, 8, | ||
205 | }; | ||
206 | size_t y_offset[] = { | ||
207 | 0, 0, 18, 18, 36, 36, | ||
200 | }; | 208 | }; |
201 | for (int i = 0; i < 4; i++) { | 209 | for (int i = 0; i < 6; i++) { |
202 | int color = COL_OFF; | 210 | int color = COL_OFF; |
203 | if (i == current_bank) { | 211 | if (i == current_bank) { |
204 | color = COL_FG; | 212 | color = COL_FG; |
205 | } | 213 | } |
206 | draw_filled_rect(x, y, x + PAT_W, y + PAT_H, COL_BG); | 214 | u8 x0 = x + x_offset[i]; |
207 | draw_rect(x, y, x + PAT_W, y + PAT_H, color); | 215 | u8 x1 = x + x_offset[i] + BANK_W; |
208 | txt_drawc(bank_names[i], x + 4, y + 1, color); | 216 | u8 y0 = y + y_offset[i]; |
209 | y += PAT_OFFSET_Y; | 217 | u8 y1 = y + y_offset[i] + BANK_H; |
218 | draw_rect(x0, y0, x1, y1, color); | ||
219 | txt_drawc(bank_names[i], x0 + 3, y0 + 1, color); | ||
210 | } | 220 | } |
211 | } | 221 | } |
212 | 222 | ||
@@ -264,15 +274,14 @@ draw_play() { | |||
264 | size_t x_btn = x + PLAY_STOP_W / 2 - 1; | 274 | size_t x_btn = x + PLAY_STOP_W / 2 - 1; |
265 | if (play_status == 1) { | 275 | if (play_status == 1) { |
266 | // Pause button | 276 | // Pause button |
267 | draw_filled_rect(x_btn - 1, y + 3, x_btn, y + 7, COL_ACC_2); | 277 | draw_filled_rect(x_btn - 1, y + 2, x_btn, y + 6, COL_ACC_2); |
268 | draw_filled_rect(x_btn + 2, y + 3, x_btn + 3, y + 7, COL_ACC_2); | 278 | draw_filled_rect(x_btn + 2, y + 2, x_btn + 3, y + 6, COL_ACC_2); |
269 | } else { | 279 | } else { |
270 | // Play button | 280 | // Play button |
271 | x += 1; | 281 | x += 1; |
272 | draw_line(x_btn + 0, y + 2, x_btn + 0, y + 8, COL_ACC_2); | 282 | draw_line(x_btn + 0, y + 2, x_btn + 0, y + 6, COL_ACC_2); |
273 | draw_line(x_btn + 1, y + 3, x_btn + 1, y + 7, COL_ACC_2); | 283 | draw_line(x_btn + 1, y + 3, x_btn + 1, y + 5, COL_ACC_2); |
274 | draw_line(x_btn + 2, y + 4, x_btn + 2, y + 6, COL_ACC_2); | 284 | draw_line(x_btn + 2, y + 4, x_btn + 2, y + 4, COL_ACC_2); |
275 | draw_line(x_btn + 3, y + 5, x_btn + 3, y + 5, COL_ACC_2); | ||
276 | } | 285 | } |
277 | } | 286 | } |
278 | 287 | ||
@@ -280,12 +289,12 @@ void | |||
280 | draw_settings() { | 289 | draw_settings() { |
281 | size_t x = SETTINGS_START_X; | 290 | size_t x = SETTINGS_START_X; |
282 | size_t y = SETTINGS_START_Y; | 291 | size_t y = SETTINGS_START_Y; |
283 | draw_rect(x + 2, y, x + R_COL_W - 2, y + PLAY_STOP_H, COL_OFF); | 292 | draw_rect(x + 2, y, x + R_COL_W, y + PLAY_STOP_H, COL_OFF); |
284 | draw_line(x + 6, y + 4, x + 9, y + 4, COL_OFF); | 293 | draw_line(x + 10, y + 3, x + 13, y + 3, COL_OFF); |
285 | draw_line(x + 6, y + 6, x + 9, y + 6, COL_OFF); | 294 | draw_line(x + 10, y + 5, x + 13, y + 5, COL_OFF); |
286 | draw_line(x + 15, y + 4, x + 18, y + 4, COL_OFF); | 295 | draw_line(x + 19, y + 3, x + 22, y + 3, COL_OFF); |
287 | draw_line(x + 15, y + 6, x + 18, y + 6, COL_OFF); | 296 | draw_line(x + 19, y + 5, x + 22, y + 5, COL_OFF); |
288 | draw_line(x + 9, y + 5, x + 15, y + 5, COL_OFF); | 297 | draw_line(x + 13, y + 4, x + 19, y + 4, COL_OFF); |
289 | } | 298 | } |
290 | 299 | ||
291 | void | 300 | void |
@@ -294,8 +303,7 @@ draw_stop() { | |||
294 | size_t y = STOP_START_Y; | 303 | size_t y = STOP_START_Y; |
295 | size_t x_btn = x + PLAY_STOP_W / 2 - 2; | 304 | size_t x_btn = x + PLAY_STOP_W / 2 - 2; |
296 | draw_rect(x, y, x + PLAY_STOP_W, y + PLAY_STOP_H, COL_ACC_1); | 305 | draw_rect(x, y, x + PLAY_STOP_W, y + PLAY_STOP_H, COL_ACC_1); |
297 | draw_filled_rect(x_btn, y + 3, x_btn + 4, y + 7, COL_ACC_1); | 306 | draw_filled_rect(x_btn, y + 2, x_btn + 4, y + 6, COL_ACC_1); |
298 | draw_settings(); | ||
299 | } | 307 | } |
300 | 308 | ||
301 | void | 309 | void |
@@ -304,21 +312,34 @@ draw_bpm() { | |||
304 | size_t y = BPM_START_Y + 2; | 312 | size_t y = BPM_START_Y + 2; |
305 | 313 | ||
306 | // Draw bounding box. | 314 | // Draw bounding box. |
307 | draw_filled_rect(x, y, x + R_COL_W, y + BPM_H - 4, COL_BG); | 315 | draw_filled_rect(x, y, x + R_COL_W - 2, y + BPM_H - 3, COL_BG); |
308 | draw_rect(x, y, x + R_COL_W, y + BPM_H - 4, COL_FG); | 316 | draw_rect(x, y, x + R_COL_W - 2, y + BPM_H - 3, COL_FG); |
309 | draw_line(x + 5, y, x + 19, y, COL_BG); | 317 | txt_drawf_small("BPM", x + 7, y - 10, COL_FG); |
310 | txt_drawf_small("BPM", x + 5, y - 4, COL_FG); | ||
311 | 318 | ||
312 | // Make sure its horizontally centered if only 2 digits | 319 | // Make sure its horizontally centered if only 2 digits |
313 | int bpm = patterns[pattern_selection_loc].bpm; | 320 | int bpm = patterns[pattern_selection_loc].bpm; |
314 | if (bpm >= 100) { | 321 | if (bpm >= 100) { |
315 | txt_drawf("%d", x + 3, y + 5, COL_FG, bpm); | 322 | txt_drawf("%d", x + 5, y + 2, COL_FG, bpm); |
316 | } else { | 323 | } else { |
317 | txt_drawf("%d", x + 6, y + 5, COL_FG, bpm); | 324 | txt_drawf("%d", x + 8, y + 2, COL_FG, bpm); |
318 | } | 325 | } |
319 | } | 326 | } |
320 | 327 | ||
321 | void | 328 | void |
329 | draw_scale() { | ||
330 | size_t x = SCALE_START_X; | ||
331 | size_t y = SCALE_START_Y; | ||
332 | |||
333 | // Draw bounding box. | ||
334 | draw_filled_rect(x, y, x + R_COL_W - 2, y + SCALE_H - 3, COL_BG); | ||
335 | draw_rect(x, y, x + R_COL_W - 2, y + SCALE_H - 3, COL_FG); | ||
336 | txt_drawf_small("SCALE", x + 3, y - 10, COL_FG); | ||
337 | |||
338 | // TODO: Switch for different scales here | ||
339 | txt_drawf("CHRM", x + 2, y + 2, COL_FG); | ||
340 | } | ||
341 | |||
342 | void | ||
322 | draw_triggers(void) { | 343 | draw_triggers(void) { |
323 | for (size_t i = 0; i < 16; i++) { | 344 | for (size_t i = 0; i < 16; i++) { |
324 | size_t offset_x = TRIG_OFFSET_X * (i % 8); | 345 | size_t offset_x = TRIG_OFFSET_X * (i % 8); |