Skip to content

Commit

Permalink
enable contrast menu for LCD model
Browse files Browse the repository at this point in the history
  • Loading branch information
solosky committed Jan 18, 2025
1 parent 4922ff1 commit 0935ac5
Show file tree
Hide file tree
Showing 18 changed files with 48 additions and 59 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@ ADD_SCENE(settings, sleep_timeout, SLEEP_TIMEOUT)
#ifdef LCD_SCREEN
ADD_SCENE(settings, lcd_backlight, LCD_BACKLIGHT)
#endif
#ifdef OLED_SCREEN
ADD_SCENE(settings, oled_contrast, OLED_CONTRAST)
#endif
ADD_SCENE(settings, oled_contrast, OLED_CONTRAST)
ADD_SCENE(settings, language, LANGUAGE)
ADD_SCENE(settings, storage, STORAGE)
ADD_SCENE(settings, about, ABOUT)
11 changes: 4 additions & 7 deletions fw/application/src/app/settings/scene/settings_scene_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,8 @@ static void settings_scene_main_reload(void *user_data);
static void settings_reset_default(void *user_data) {
app_settings_t *app = user_data;
settings_data_t *p_settings = settings_get_data();
#ifdef OLED_SCREEN
mui_u8g2_set_oled_contrast_level(p_settings->oled_contrast);
#else
mui_u8g2_set_contrast_level(p_settings->oled_contrast);
#ifdef LCD_SCREEN
mui_u8g2_set_backlight_level(p_settings->lcd_backlight);
#endif
nrf_pwr_mgmt_set_timeout(p_settings->sleep_timeout_sec);
Expand Down Expand Up @@ -67,11 +66,9 @@ static void settings_scene_main_list_view_on_selected(mui_list_view_event_t even
break;
#endif

#ifdef OLED_SCREEN
case SETTINGS_MAIN_MENU_OLED_CONTRAST:
mui_scene_dispatcher_next_scene(app->p_scene_dispatcher, SETTINGS_SCENE_OLED_CONTRAST);
break;
#endif

case SETTINGS_MAIN_MENU_VERSION:
mui_scene_dispatcher_next_scene(app->p_scene_dispatcher, SETTINGS_SCENE_VERSION);
Expand Down Expand Up @@ -171,11 +168,11 @@ static void settings_scene_main_reload(void *user_data) {
}
mui_list_view_add_item_ext(app->p_list_view, 0xe146, _T(APP_SET_STORAGE), txt, (void *)SETTINGS_MAIN_MENU_STORAGE);

#ifdef OLED_SCREEN
snprintf(txt, sizeof(txt), "[%d%%]", p_settings->oled_contrast);
mui_list_view_add_item_ext(app->p_list_view, 0xe1c8, _T(APP_SET_OLED_CONTRAST), txt,
(void *)SETTINGS_MAIN_MENU_OLED_CONTRAST);
#else

#ifdef LCD_SCREEN
if (p_settings->lcd_backlight == 0) {
snprintf(txt, sizeof(txt), "%s", getLangString(_L_OFF_F));
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,16 @@
#include "mui_u8g2.h"
#include "i18n/language.h"

#ifdef OLED_SCREEN

static void settings_scene_oled_contrast_event_cb(mui_progress_bar_event_t event, mui_progress_bar_t *p_progress_bar) {
app_settings_t *app = p_progress_bar->user_data;
settings_data_t *p_settings = settings_get_data();
if (event == MUI_PROGRESS_BAR_EVENT_DECREMENT || event == MUI_PROGRESS_BAR_EVENT_INCREMENT) {
uint8_t value = mui_progress_bar_get_current_value(p_progress_bar);
mui_u8g2_set_oled_contrast_level(value);
mui_u8g2_set_contrast_level(value);
} else {
uint8_t value = mui_progress_bar_get_current_value(p_progress_bar);
mui_u8g2_set_oled_contrast_level(value);
mui_u8g2_set_contrast_level(value);
p_settings->oled_contrast = value;
mui_scene_dispatcher_previous_scene(app->p_scene_dispatcher);
}
Expand All @@ -41,5 +40,3 @@ void settings_scene_oled_contrast_on_exit(void *user_data) {
app_settings_t *app = user_data;
mui_progress_bar_reset(app->p_progress_bar);
}

#endif
4 changes: 2 additions & 2 deletions fw/application/src/i18n/de_DE.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ const char * const lang_de_DE[_L_COUNT] = {
[_L_APP_SET_VERSION] = "Version",
[_L_APP_SET_STORAGE_USED] = "Belegt",
[_L_APP_SET_STORAGE] = "Externer Speicher",
[_L_APP_SET_OLED_CONTRAST] = "OLED Kontrast",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "OLED Kontrast",
[_L_APP_SET_OLED_CONTRAST] = "Kontrast",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "Kontrast",
[_L_APP_SET_LCD_BACKLIGHT] = "Beleuchtung",
[_L_APP_SET_LCD_BACKLIGHT_TITLE] = "Helligkeit",
[_L_APP_SET_ANIM] = "Menü Animation",
Expand Down
4 changes: 2 additions & 2 deletions fw/application/src/i18n/en_US.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ const char * const lang_en_US[_L_COUNT] = {
[_L_APP_SET_VERSION] = "Version",
[_L_APP_SET_STORAGE_USED] = "Used",
[_L_APP_SET_STORAGE] = "External Storage",
[_L_APP_SET_OLED_CONTRAST] = "OLED Contrast",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "OLED Contrast",
[_L_APP_SET_OLED_CONTRAST] = "Contrast",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "Contrast",
[_L_APP_SET_LCD_BACKLIGHT] = "Backlight",
[_L_APP_SET_LCD_BACKLIGHT_TITLE] = "Backlight Brightness",
[_L_APP_SET_ANIM] = "Menu Animation",
Expand Down
4 changes: 2 additions & 2 deletions fw/application/src/i18n/fr_FR.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ const char * const lang_fr_FR[_L_COUNT] = {
[_L_APP_SET_VERSION] = "Version",
[_L_APP_SET_STORAGE_USED] = "Utilisé",
[_L_APP_SET_STORAGE] = "Stockage Externe",
[_L_APP_SET_OLED_CONTRAST] = "Contraste OLED",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "Contraste OLED",
[_L_APP_SET_OLED_CONTRAST] = "Contraste",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "Contraste",
[_L_APP_SET_LCD_BACKLIGHT] = "Rétroéclairage",
[_L_APP_SET_LCD_BACKLIGHT_TITLE] = "Luminosité du Rétroéclairage",
[_L_APP_SET_ANIM] = "Animation du Menu",
Expand Down
4 changes: 2 additions & 2 deletions fw/application/src/i18n/hu_HU.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ const char * const lang_hu_HU[_L_COUNT] = {
[_L_APP_SET_VERSION] = "Verzió",
[_L_APP_SET_STORAGE_USED] = "Használt",
[_L_APP_SET_STORAGE] = "Külső Tároló",
[_L_APP_SET_OLED_CONTRAST] = "OLED Kontraszt",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "OLED Kontraszt",
[_L_APP_SET_OLED_CONTRAST] = "Kontraszt",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "Kontraszt",
[_L_APP_SET_LCD_BACKLIGHT] = "Háttérvilágítás",
[_L_APP_SET_LCD_BACKLIGHT_TITLE] = "Háttérvilágítás Fényerő",
[_L_APP_SET_ANIM] = "Menü Animáció",
Expand Down
4 changes: 2 additions & 2 deletions fw/application/src/i18n/it_IT.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ const char * const lang_it_IT[_L_COUNT] = {
[_L_APP_SET_VERSION] = "Versione",
[_L_APP_SET_STORAGE_USED] = "Usato",
[_L_APP_SET_STORAGE] = "Memoria esterna",
[_L_APP_SET_OLED_CONTRAST] = "Contrasto OLED",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "Contrasto OLED",
[_L_APP_SET_OLED_CONTRAST] = "Contrasto",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "Contrasto",
[_L_APP_SET_LCD_BACKLIGHT] = "Luminosità",
[_L_APP_SET_LCD_BACKLIGHT_TITLE] = "Luminosità schermo",
[_L_APP_SET_ANIM] = "Animazione menu",
Expand Down
4 changes: 2 additions & 2 deletions fw/application/src/i18n/ja_JP.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ const char * const lang_ja_JP[_L_COUNT] = {
[_L_APP_SET_VERSION] = "バージョン",
[_L_APP_SET_STORAGE_USED] = "使用ストレージ",
[_L_APP_SET_STORAGE] = "外部ストレージ",
[_L_APP_SET_OLED_CONTRAST] = "OLEDコントラスト",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "OLEDコントラスト",
[_L_APP_SET_OLED_CONTRAST] = "コントラスト",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "コントラスト",
[_L_APP_SET_LCD_BACKLIGHT] = "バックライト",
[_L_APP_SET_LCD_BACKLIGHT_TITLE] = "バックライトの明るさ",
[_L_APP_SET_ANIM] = "メニュー アニメーション",
Expand Down
4 changes: 2 additions & 2 deletions fw/application/src/i18n/nl_NL.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ const char * const lang_nl_NL[_L_COUNT] = {
[_L_APP_SET_VERSION] = "Versie",
[_L_APP_SET_STORAGE_USED] = "Gebruikt",
[_L_APP_SET_STORAGE] = "Externe Opslag",
[_L_APP_SET_OLED_CONTRAST] = "OLED-Contrast",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "OLED-Contrast",
[_L_APP_SET_OLED_CONTRAST] = "Contrast",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "Contrast",
[_L_APP_SET_LCD_BACKLIGHT] = "Achtergrondverlichting",
[_L_APP_SET_LCD_BACKLIGHT_TITLE] = "Helderheid Achtergrondverlichting",
[_L_APP_SET_ANIM] = "Menu-Animatie",
Expand Down
4 changes: 2 additions & 2 deletions fw/application/src/i18n/pt_BR.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ const char * const lang_pt_BR[_L_COUNT] = {
[_L_APP_SET_VERSION] = "Versão",
[_L_APP_SET_STORAGE_USED] = "Usado",
[_L_APP_SET_STORAGE] = "Armazenamento Externo",
[_L_APP_SET_OLED_CONTRAST] = "Contraste do OLED",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "Contraste do OLED",
[_L_APP_SET_OLED_CONTRAST] = "Contraste do",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "Contraste do",
[_L_APP_SET_LCD_BACKLIGHT] = "Luz de Fundo",
[_L_APP_SET_LCD_BACKLIGHT_TITLE] = "Brilho da Luz de Fundo",
[_L_APP_SET_ANIM] = "Animação do Menu",
Expand Down
4 changes: 2 additions & 2 deletions fw/application/src/i18n/pt_PT.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ const char * const lang_pt_PT[_L_COUNT] = {
[_L_APP_SET_VERSION] = "Versão",
[_L_APP_SET_STORAGE_USED] = "Usada",
[_L_APP_SET_STORAGE] = "Memoria Externa",
[_L_APP_SET_OLED_CONTRAST] = "Contraste OLED",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "Contraste OLED",
[_L_APP_SET_OLED_CONTRAST] = "Contraste",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "Contraste",
[_L_APP_SET_LCD_BACKLIGHT] = "Brilho",
[_L_APP_SET_LCD_BACKLIGHT_TITLE] = "Brilho do Ecrã",
[_L_APP_SET_ANIM] = "Animação do Menu",
Expand Down
4 changes: 2 additions & 2 deletions fw/application/src/i18n/zh_Hans.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ const char * const lang_zh_Hans[_L_COUNT] = {
[_L_APP_SET_VERSION] = "版本",
[_L_APP_SET_STORAGE_USED] = "已用",
[_L_APP_SET_STORAGE] = "外置存储",
[_L_APP_SET_OLED_CONTRAST] = "OLED对比度",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "OLED对比度",
[_L_APP_SET_OLED_CONTRAST] = "对比度",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "对比度",
[_L_APP_SET_LCD_BACKLIGHT] = "背光亮度",
[_L_APP_SET_LCD_BACKLIGHT_TITLE] = "背光亮度",
[_L_APP_SET_ANIM] = "动画效果",
Expand Down
4 changes: 2 additions & 2 deletions fw/application/src/i18n/zh_TW.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ const char * const lang_zh_TW[_L_COUNT] = {
[_L_APP_SET_VERSION] = "版本",
[_L_APP_SET_STORAGE_USED] = "已用",
[_L_APP_SET_STORAGE] = "外置存儲",
[_L_APP_SET_OLED_CONTRAST] = "OLED對比度",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "OLED對比度",
[_L_APP_SET_OLED_CONTRAST] = "對比度",
[_L_APP_SET_OLED_CONTRAST_TITLE] = "對比度",
[_L_APP_SET_LCD_BACKLIGHT] = "背光亮度",
[_L_APP_SET_LCD_BACKLIGHT_TITLE] = "背光亮度",
[_L_APP_SET_ANIM] = "動畫效果",
Expand Down
4 changes: 3 additions & 1 deletion fw/application/src/mod/settings.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ const settings_data_t def_settings_data = {.backlight = 0,
.language = LANGUAGE_EN_US,
.hibernate_enabled = false,
.show_mem_usage = false,
.lcd_backlight = 0,
.oled_contrast = 80,
.anim_enabled = false,
.amiidb_data_slot_num = 20,
.qrcode_enabled = true,
Expand Down Expand Up @@ -61,7 +63,7 @@ static void validate_settings() {
BOOL_VALIDATE(m_settings_data.auto_gen_amiibolink, 0);
BOOL_VALIDATE(m_settings_data.backlight, 0);
INT8_VALIDATE(m_settings_data.lcd_backlight, 0, 100, 0);
INT8_VALIDATE(m_settings_data.oled_contrast, 0, 100, 0);
INT8_VALIDATE(m_settings_data.oled_contrast, 0, 100, 80);
BOOL_VALIDATE(m_settings_data.anim_enabled, 0);
BOOL_VALIDATE(m_settings_data.qrcode_enabled, 0);
INT8_VALIDATE(m_settings_data.language, 0, LANGUAGE_COUNT - 1, LANGUAGE_EN_US);
Expand Down
21 changes: 8 additions & 13 deletions fw/application/src/mui/mui_u8g2.c
Original file line number Diff line number Diff line change
Expand Up @@ -193,9 +193,13 @@ void mui_u8g2_init(u8g2_t *p_u8g2) {
nrf_gpio_pin_clear(LCD_BL_PIN);

u8g2_Setup_st7567_enh_dg128064_f(p_u8g2, U8G2_R0, u8x8_HW_com_spi_nrf52832, u8g2_nrf_gpio_and_delay_spi_cb);

u8g2_InitDisplay(p_u8g2);

settings_data_t *p_settings = settings_get_data();
mui_u8g2_set_contrast_level(p_settings->oled_contrast);

u8g2_SetPowerSave(p_u8g2, 0);
mui_u8g2_set_lcd_default_contrast_level();

pwm_init();
#endif
Expand All @@ -205,7 +209,7 @@ void mui_u8g2_init(u8g2_t *p_u8g2) {
u8g2_InitDisplay(p_u8g2);

settings_data_t *p_settings = settings_get_data();
mui_u8g2_set_oled_contrast_level(p_settings->oled_contrast);
mui_u8g2_set_contrast_level(p_settings->oled_contrast);

u8g2_SetPowerSave(p_u8g2, 0);

Expand Down Expand Up @@ -240,20 +244,11 @@ void mui_u8g2_set_backlight_level(uint8_t value) {
}
int8_t mui_u8g2_get_backlight_level(void) { return (int8_t)app_pwm_channel_duty_get(&pwm1, 0); }

void mui_u8g2_set_lcd_default_contrast_level(void) {
mui_t *p_mui = mui();
u8g2_SetContrast(&p_mui->u8g2, LCD_DEFAULT_CONTRAST);
}

#endif

#ifdef OLED_SCREEN
void mui_u8g2_set_oled_contrast_level(uint8_t value) {
void mui_u8g2_set_contrast_level(uint8_t value) {
mui_t *p_mui = mui();
u8g2_SetContrast(&p_mui->u8g2, (value - 1) * (255.0 / 99.0));
}
#endif

const spi_device_t* mui_u8g2_get_spi_device(){
return &m_dev;
}
const spi_device_t *mui_u8g2_get_spi_device() { return &m_dev; }
2 changes: 1 addition & 1 deletion fw/application/src/mui/mui_u8g2.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ void mui_u8g2_set_backlight_level(uint8_t bl);
int8_t mui_u8g2_get_backlight_level(void);
void mui_u8g2_set_lcd_default_contrast_level(void);

void mui_u8g2_set_oled_contrast_level(uint8_t value);
void mui_u8g2_set_contrast_level(uint8_t value);

const spi_device_t* mui_u8g2_get_spi_device();

Expand Down
Loading

0 comments on commit 0935ac5

Please sign in to comment.