From a5a81a6d5c91461daeff95f02bab4eabb80315d5 Mon Sep 17 00:00:00 2001 From: rkcf Date: Sun, 5 Feb 2023 00:37:05 -0600 Subject: [PATCH] Feat: add tracker under sequence to display current step --- main/esp32-sequencer.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/main/esp32-sequencer.c b/main/esp32-sequencer.c index 8e32652..4199a7b 100644 --- a/main/esp32-sequencer.c +++ b/main/esp32-sequencer.c @@ -93,6 +93,7 @@ lv_obj_t * bpm_label = NULL; static uint8_t sequence[SEQ_MAX_LEN] = {0}; static uint8_t seq_len = SEQ_MAX_LEN; lv_obj_t * sequence_label = NULL; +lv_obj_t * sequence_tracker = NULL; static const char *TAG = "sequencer"; @@ -452,6 +453,12 @@ static void gui_create(void) { lv_label_set_text(sequence_label, "oooooooo"); lv_obj_add_style(sequence_label, &gui_style, LV_STATE_DEFAULT); lv_obj_align(sequence_label, LV_ALIGN_CENTER, 0, 0); + + // Create sequence tracker text area + sequence_tracker = lv_label_create(lv_scr_act()); + lv_obj_add_style(sequence_tracker, &gui_style, LV_STATE_DEFAULT); + lv_label_set_text(sequence_tracker, "_ "); + lv_obj_align(sequence_tracker, LV_ALIGN_CENTER, 0, 5); // slightly lower than main sequence } static void gui_task(void *pvParameter) { @@ -494,7 +501,19 @@ void app_main(void) { /* Main Loop */ while (1) { + char tracker_str[seq_len]; for (uint8_t step = 0; step < seq_len; step++) { + // advance step tracker + if (step == 0) { + tracker_str[seq_len - 1] = ' '; + } else { + tracker_str[step - 1] = ' '; + } + tracker_str[step] = '_'; + + // set the new sequence label + lv_label_set_text(sequence_tracker, tracker_str); + // if step has been set for sequence if (sequence[step] == 1) { pulse_cv(true);