Settings: disable onboard LED
All checks were successful
ESP32 Build & Release / build (push) Successful in 1m16s

This commit is contained in:
2026-09-14 00:02:59 +02:00
parent e6760e4866
commit a30ea5429f
6 changed files with 120 additions and 11 deletions

View File

@@ -21,6 +21,7 @@
#include "buzzer.h"
#include "jpeg_decoder.h"
#include "ota_manager.h"
#include "board_led.h"
#include "ui_task.h"
static const char *TAG = "ui";
@@ -55,14 +56,15 @@ static const char *s_menu_labels[MAIN_MENU_ITEM_COUNT] = {
"6. SETTINGS & TOOLS"
};
#define SETTINGS_MENU_ITEM_COUNT 5
#define SETTINGS_MENU_ITEM_COUNT 6
static int s_settings_idx = 0;
static const char *s_settings_labels[SETTINGS_MENU_ITEM_COUNT] = {
"< BACK TO MAIN MENU",
"1. AUDIO: CHIPTUNE",
"2. DECK STORAGE",
"3. DEVICE & WIFI INFO",
"4. UPDATE FIRMWARE"
"2. RED LED: OFF",
"3. DECK STORAGE",
"4. DEVICE & WIFI INFO",
"5. UPDATE FIRMWARE"
};
/* Life & Counters */
@@ -381,9 +383,12 @@ static void view_settings_menu(void)
char audio_lbl_buf[36];
snprintf(audio_lbl_buf, sizeof(audio_lbl_buf), "1. AUDIO: %s", buzzer_get_profile_name(buzzer_get_profile()));
int start_y = 50;
char led_lbl_buf[36];
snprintf(led_lbl_buf, sizeof(led_lbl_buf), "2. RED LED: %s", board_led_get_enabled() ? "ON" : "OFF");
int start_y = 44;
int row_height = 34;
int row_gap = 8;
int row_gap = 7;
for (int i = 0; i < SETTINGS_MENU_ITEM_COUNT; i++) {
bool selected = (i == s_settings_idx);
@@ -404,7 +409,12 @@ static void view_settings_menu(void)
lv_obj_set_style_border_width(item_box, 1, 0);
}
const char *item_txt = (i == 1) ? audio_lbl_buf : s_settings_labels[i];
const char *item_txt = s_settings_labels[i];
if (i == 1) {
item_txt = audio_lbl_buf;
} else if (i == 2) {
item_txt = led_lbl_buf;
}
lv_obj_t *lbl = lv_label_create(item_box);
if (i == 0) {
/* Back button item */
@@ -2020,17 +2030,24 @@ static void handle_encoder_click(void)
view_settings_menu();
break;
}
case 2: /* DECK STORAGE */
case 2: { /* RED LED inline toggle */
bool new_state = !board_led_get_enabled();
board_led_set_enabled(new_state);
buzzer_sound_tick();
view_settings_menu();
break;
}
case 3: /* DECK STORAGE */
app_set_view(APP_STATE_STORAGE_MANAGER);
s_storage_confirm_dialog = false;
s_storage_option_idx = 0;
view_storage();
break;
case 3: /* DEVICE & WIFI INFO */
case 4: /* DEVICE & WIFI INFO */
app_set_view(APP_STATE_DEVICE_INFO);
view_device_info();
break;
case 4: /* UPDATE FIRMWARE */
case 5: /* UPDATE FIRMWARE */
app_set_view(APP_STATE_OTA_UPDATE);
buzzer_chirp(988, 40);
ota_manager_check_update_async();