Files
ESP32_Serial_Swiss_Army_Knife/src/local_ui_config.h
T

31 lines
995 B
C

/* SPDX-License-Identifier: GPL-3.0-only */
/* Versioned persistent configuration for the optional local OLED UI. */
#pragma once
#include <stdbool.h>
#include <stdint.h>
#include "esp_err.h"
#define LOCAL_UI_CONFIG_VERSION 1U
#define LOCAL_UI_CONFIG_DEFAULT_DIM_SECONDS 300U
#define LOCAL_UI_CONFIG_DEFAULT_OFF_SECONDS 600U
#define LOCAL_UI_CONFIG_MAX_TIMEOUT_SECONDS 86400U
#define LOCAL_UI_CONFIG_NVS_NAMESPACE "local_ui"
#define LOCAL_UI_CONFIG_NVS_BLOB_KEY "config"
typedef struct {
uint32_t version;
/* Zero disables the corresponding inactivity transition. */
uint32_t dim_timeout_seconds;
uint32_t off_timeout_seconds;
} local_ui_config_t;
void local_ui_config_defaults(local_ui_config_t *config);
esp_err_t local_ui_config_validate(const local_ui_config_t *config);
esp_err_t local_ui_config_load(local_ui_config_t *config, bool *used_stored_config);
esp_err_t local_ui_config_save(const local_ui_config_t *config);
esp_err_t local_ui_config_reset_storage(void);