From 75070588701cbb03338dded6107409b3b6e59c15 Mon Sep 17 00:00:00 2001 From: Dmitry422 Date: Tue, 8 Apr 2025 18:00:10 +0700 Subject: [PATCH 1/4] Start working with LCD color inversion --- applications/services/gui/canvas.c | 47 +++++++++++++++++++ .../services/notification/notification_app.c | 10 ---- .../services/notification/notification_app.h | 5 +- .../notification_settings_app.c | 24 ++++++++++ lib/u8g2/u8g2.h | 1 + lib/u8g2/u8g2_buffer.c | 7 +++ 6 files changed, 83 insertions(+), 11 deletions(-) diff --git a/applications/services/gui/canvas.c b/applications/services/gui/canvas.c index 337789dd3..22addd9ff 100644 --- a/applications/services/gui/canvas.c +++ b/applications/services/gui/canvas.c @@ -6,6 +6,8 @@ #include #include +#include + const CanvasFontParameters canvas_font_params[FontTotalNumber] = { [FontPrimary] = {.leading_default = 12, .leading_min = 11, .height = 8, .descender = 2}, [FontSecondary] = {.leading_default = 11, .leading_min = 9, .height = 7, .descender = 2}, @@ -141,11 +143,39 @@ const CanvasFontParameters* canvas_get_font_params(const Canvas* canvas, Font fo void canvas_clear(Canvas* canvas) { furi_check(canvas); + furi_delay_ms (500); + NotificationApp* app = malloc (sizeof(NotificationApp)); + app = furi_record_open(RECORD_NOTIFICATION); + + // open Notification record for access to NotificationApp settings + // NotificationApp* app = malloc (sizeof(NotificationApp)); + // app = furi_record_open(RECORD_NOTIFICATION); + + if(app->settings.lcd_inverse) { + u8g2_FillBuffer(&canvas->fb); + } else { + u8g2_ClearBuffer(&canvas->fb); + } + u8g2_ClearBuffer(&canvas->fb); + // furi_record_close (RECORD_NOTIFICATION); + // free (app); } void canvas_set_color(Canvas* canvas, Color color) { furi_check(canvas); + furi_delay_ms (500); + // open Notification record for access to NotificationApp settings + NotificationApp* app = malloc (sizeof(NotificationApp)); + app = furi_record_open(RECORD_NOTIFICATION); + + if(app->settings.lcd_inverse) { + if(color == ColorBlack) { + color = ColorWhite; + } else if(color == ColorWhite) { + color = ColorBlack; + } + } u8g2_SetDrawColor(&canvas->fb, color); } @@ -155,6 +185,23 @@ void canvas_set_font_direction(Canvas* canvas, CanvasDirection dir) { } void canvas_invert_color(Canvas* canvas) { + + // // open Notification record for access to NotificationApp settings + // NotificationApp* app = malloc (sizeof(NotificationApp)); + // app = furi_record_open(RECORD_NOTIFICATION); + + // if((canvas->fb.draw_color == ColorXOR) && app->settings.lcd_inverse) { + // // ColorXOR = 0x02, inversion change it to White = 0x00 + // // but if we have lcd_inverse ON then we need Black =0x01 instead White 0x00 + // // so we force changing color to black + // canvas->fb.draw_color = ColorBlack; + // } else { + // canvas->fb.draw_color = !canvas->fb.draw_color; + // } + + // furi_record_close (RECORD_NOTIFICATION); + // free (app); + canvas->fb.draw_color = !canvas->fb.draw_color; } diff --git a/applications/services/notification/notification_app.c b/applications/services/notification/notification_app.c index b50017963..9a6b4a3da 100644 --- a/applications/services/notification/notification_app.c +++ b/applications/services/notification/notification_app.c @@ -56,10 +56,6 @@ void night_shift_timer_callback(void* context) { NotificationApp* app = context; DateTime current_date_time; - // IN DEVELOPMENT - // // save current night_shift; - // float old_night_shift = app->current_night_shift; - // take system time and convert to minutes furi_hal_rtc_get_datetime(¤t_date_time); uint32_t time = current_date_time.hour * 60 + current_date_time.minute; @@ -73,12 +69,6 @@ void night_shift_timer_callback(void* context) { app->current_night_shift = app->settings.night_shift; app->rgb_srv->current_night_shift = app->settings.night_shift; } - - // IN DEVELOPMENT - // // if night shift was changed then update stock and rgb backlight to new value - // if(old_night_shift != app->current_night_shift) { - // notification_message(app, &sequence_display_backlight_on); - // } } // --- NIGHT SHIFT END --- diff --git a/applications/services/notification/notification_app.h b/applications/services/notification/notification_app.h index 2ef84ba95..d027bf200 100644 --- a/applications/services/notification/notification_app.h +++ b/applications/services/notification/notification_app.h @@ -34,7 +34,7 @@ typedef struct { Light light; } NotificationLedLayer; -#define NOTIFICATION_SETTINGS_VERSION 0x03 +#define NOTIFICATION_SETTINGS_VERSION 0x04 #define NOTIFICATION_SETTINGS_PATH INT_PATH(NOTIFICATION_SETTINGS_FILE_NAME) typedef struct { @@ -48,8 +48,11 @@ typedef struct { float night_shift; uint32_t night_shift_start; uint32_t night_shift_end; + bool lcd_inverse; } NotificationSettings; +//extern NotificationSettings settings; + struct NotificationApp { FuriMessageQueue* queue; FuriPubSub* event_record; diff --git a/applications/settings/notification_settings/notification_settings_app.c b/applications/settings/notification_settings/notification_settings_app.c index 86176c8e5..7b239a077 100644 --- a/applications/settings/notification_settings/notification_settings_app.c +++ b/applications/settings/notification_settings/notification_settings_app.c @@ -270,6 +270,13 @@ const uint32_t night_shift_end_value[NIGHT_SHIFT_END_COUNT] = { // --- NIGHT SHIFT END --- +#define LCD_INVERSE_COUNT 2 +const char* const lcd_inverse_text[LCD_INVERSE_COUNT] = { + "OFF", + "ON", +}; +const bool lcd_inverse_value[LCD_INVERSE_COUNT] = {false, true}; + static void contrast_changed(VariableItem* item) { NotificationAppSettings* app = variable_item_get_context(item); uint8_t index = variable_item_get_current_value_index(item); @@ -341,6 +348,16 @@ static void vibro_changed(VariableItem* item) { notification_message(app->notification, &sequence_single_vibro); } +static void lcd_inverse_changed(VariableItem* item) { + NotificationAppSettings* app = variable_item_get_context(item); + uint8_t index = variable_item_get_current_value_index(item); + + variable_item_set_current_value_text(item, lcd_inverse_text[index]); + app->notification->settings.lcd_inverse = lcd_inverse_value[index]; + notification_message(app->notification, &sequence_display_backlight_on); + +} + //--- RGB BACKLIGHT --- static void rgb_backlight_installed_changed(VariableItem* item) { @@ -721,6 +738,13 @@ static NotificationAppSettings* alloc_settings(void) { variable_item_set_current_value_text(item, vibro_text[value_index]); } + item = variable_item_list_add( + app->variable_item_list, "LCD Inverse", LCD_INVERSE_COUNT, lcd_inverse_changed, app); + value_index = value_index_bool( + app->notification->settings.lcd_inverse, lcd_inverse_value, LCD_INVERSE_COUNT); + variable_item_set_current_value_index(item, value_index); + variable_item_set_current_value_text(item, lcd_inverse_text[value_index]); + //--- RGB BACKLIGHT --- app->variable_item_list_rgb = variable_item_list_alloc(); diff --git a/lib/u8g2/u8g2.h b/lib/u8g2/u8g2.h index c37f3b931..100b56d57 100644 --- a/lib/u8g2/u8g2.h +++ b/lib/u8g2/u8g2.h @@ -3548,6 +3548,7 @@ void u8g2_Setup_a2printer_384x240_f( void u8g2_SendBuffer(u8g2_t* u8g2); void u8g2_ClearBuffer(u8g2_t* u8g2); +void u8g2_FillBuffer(u8g2_t* u8g2); void u8g2_SetBufferCurrTileRow(u8g2_t* u8g2, uint8_t row) U8G2_NOINLINE; diff --git a/lib/u8g2/u8g2_buffer.c b/lib/u8g2/u8g2_buffer.c index 45855bd5d..57f4f84be 100644 --- a/lib/u8g2/u8g2_buffer.c +++ b/lib/u8g2/u8g2_buffer.c @@ -45,6 +45,13 @@ void u8g2_ClearBuffer(u8g2_t* u8g2) { memset(u8g2->tile_buf_ptr, 0, cnt); } +void u8g2_FillBuffer(u8g2_t* u8g2) { + size_t cnt; + cnt = u8g2_GetU8x8(u8g2)->display_info->tile_width; + cnt *= u8g2->tile_buf_height; + cnt *= 8; + memset(u8g2->tile_buf_ptr, 255, cnt); +} /*============================================*/ static void u8g2_send_tile_row(u8g2_t* u8g2, uint8_t src_tile_row, uint8_t dest_tile_row) { From 4ec8f21e0928d3734c85f5923dab6f0b76cf2750 Mon Sep 17 00:00:00 2001 From: Dmitry422 Date: Wed, 9 Apr 2025 22:23:55 +0700 Subject: [PATCH 2/4] still under construction --- applications/services/gui/canvas.c | 45 +++++-------------- .../services/notification/notification_app.c | 5 +++ .../services/notification/notification_app.h | 5 ++- .../notification_settings_app.c | 4 ++ 4 files changed, 22 insertions(+), 37 deletions(-) diff --git a/applications/services/gui/canvas.c b/applications/services/gui/canvas.c index 22addd9ff..33402ab3c 100644 --- a/applications/services/gui/canvas.c +++ b/applications/services/gui/canvas.c @@ -143,33 +143,18 @@ const CanvasFontParameters* canvas_get_font_params(const Canvas* canvas, Font fo void canvas_clear(Canvas* canvas) { furi_check(canvas); - furi_delay_ms (500); - NotificationApp* app = malloc (sizeof(NotificationApp)); - app = furi_record_open(RECORD_NOTIFICATION); - - // open Notification record for access to NotificationApp settings - // NotificationApp* app = malloc (sizeof(NotificationApp)); - // app = furi_record_open(RECORD_NOTIFICATION); - if(app->settings.lcd_inverse) { + if(lcd_inverted) { u8g2_FillBuffer(&canvas->fb); } else { u8g2_ClearBuffer(&canvas->fb); } - - u8g2_ClearBuffer(&canvas->fb); - // furi_record_close (RECORD_NOTIFICATION); - // free (app); } void canvas_set_color(Canvas* canvas, Color color) { furi_check(canvas); - furi_delay_ms (500); - // open Notification record for access to NotificationApp settings - NotificationApp* app = malloc (sizeof(NotificationApp)); - app = furi_record_open(RECORD_NOTIFICATION); - if(app->settings.lcd_inverse) { + if(lcd_inverted) { if(color == ColorBlack) { color = ColorWhite; } else if(color == ColorWhite) { @@ -185,24 +170,14 @@ void canvas_set_font_direction(Canvas* canvas, CanvasDirection dir) { } void canvas_invert_color(Canvas* canvas) { - - // // open Notification record for access to NotificationApp settings - // NotificationApp* app = malloc (sizeof(NotificationApp)); - // app = furi_record_open(RECORD_NOTIFICATION); - - // if((canvas->fb.draw_color == ColorXOR) && app->settings.lcd_inverse) { - // // ColorXOR = 0x02, inversion change it to White = 0x00 - // // but if we have lcd_inverse ON then we need Black =0x01 instead White 0x00 - // // so we force changing color to black - // canvas->fb.draw_color = ColorBlack; - // } else { - // canvas->fb.draw_color = !canvas->fb.draw_color; - // } - - // furi_record_close (RECORD_NOTIFICATION); - // free (app); - - canvas->fb.draw_color = !canvas->fb.draw_color; + if((canvas->fb.draw_color == ColorXOR) && lcd_inverted) { + // ColorXOR = 0x02, inversion change it to White = 0x00 + // but if we have lcd_inverse ON then we need Black =0x01 instead White 0x00 + // so we force changing color to black + canvas->fb.draw_color = ColorBlack; + } else { + canvas->fb.draw_color = !canvas->fb.draw_color; + } } void canvas_set_font(Canvas* canvas, Font font) { diff --git a/applications/services/notification/notification_app.c b/applications/services/notification/notification_app.c index 9a6b4a3da..8a059586d 100644 --- a/applications/services/notification/notification_app.c +++ b/applications/services/notification/notification_app.c @@ -620,6 +620,8 @@ static NotificationApp* notification_app_alloc(void) { furi_timer_alloc(night_shift_timer_callback, FuriTimerTypePeriodic, app); // --- NIGHT SHIFT END --- + lcd_inverted = false; + return app; } @@ -650,6 +652,9 @@ static void notification_apply_settings(NotificationApp* app) { night_shift_timer_start(app); } // --- NIGHT SHIFT END --- + + //setup global variable "inverted" by settings value; + lcd_inverted = app->settings.lcd_inverse; } static void notification_init_settings(NotificationApp* app) { diff --git a/applications/services/notification/notification_app.h b/applications/services/notification/notification_app.h index d027bf200..30673f470 100644 --- a/applications/services/notification/notification_app.h +++ b/applications/services/notification/notification_app.h @@ -51,8 +51,6 @@ typedef struct { bool lcd_inverse; } NotificationSettings; -//extern NotificationSettings settings; - struct NotificationApp { FuriMessageQueue* queue; FuriPubSub* event_record; @@ -72,3 +70,6 @@ struct NotificationApp { void notification_message_save_settings(NotificationApp* app); void night_shift_timer_start(NotificationApp* app); void night_shift_timer_stop(NotificationApp* app); + +//global variable for using in canvac.c +extern bool lcd_inverted; diff --git a/applications/settings/notification_settings/notification_settings_app.c b/applications/settings/notification_settings/notification_settings_app.c index 7b239a077..25fc264f8 100644 --- a/applications/settings/notification_settings/notification_settings_app.c +++ b/applications/settings/notification_settings/notification_settings_app.c @@ -354,6 +354,10 @@ static void lcd_inverse_changed(VariableItem* item) { variable_item_set_current_value_text(item, lcd_inverse_text[index]); app->notification->settings.lcd_inverse = lcd_inverse_value[index]; + + //setup global variable for using in canvas.c + lcd_inverted = lcd_inverse_value[index]; + notification_message(app->notification, &sequence_display_backlight_on); } From 224d4e060bea27a8ede8b45a27fc25d032401762 Mon Sep 17 00:00:00 2001 From: Dmitry422 Date: Wed, 9 Apr 2025 23:37:30 +0700 Subject: [PATCH 3/4] LCD Inversion finished by MMX --- applications/services/gui/canvas.c | 22 +++++++++++++------ applications/services/gui/canvas.h | 4 ++++ applications/services/gui/canvas_i.h | 1 + .../services/notification/notification_app.c | 14 +++++++++--- .../services/notification/notification_app.h | 3 --- .../notification_settings_app.c | 6 ++--- targets/f7/api_symbols.csv | 4 +++- 7 files changed, 37 insertions(+), 17 deletions(-) diff --git a/applications/services/gui/canvas.c b/applications/services/gui/canvas.c index 33402ab3c..9c19853d3 100644 --- a/applications/services/gui/canvas.c +++ b/applications/services/gui/canvas.c @@ -6,8 +6,6 @@ #include #include -#include - const CanvasFontParameters canvas_font_params[FontTotalNumber] = { [FontPrimary] = {.leading_default = 12, .leading_min = 11, .height = 8, .descender = 2}, [FontSecondary] = {.leading_default = 11, .leading_min = 9, .height = 7, .descender = 2}, @@ -96,6 +94,16 @@ size_t canvas_get_buffer_size(const Canvas* canvas) { return u8g2_GetBufferTileWidth(&canvas->fb) * u8g2_GetBufferTileHeight(&canvas->fb) * 8; } +bool canvas_is_inverted_lcd(Canvas* canvas) { + furi_assert(canvas); + return canvas->lcd_inverse; +} + +void canvas_set_inverted_lcd(Canvas* canvas, bool inverted) { + furi_assert(canvas); + canvas->lcd_inverse = inverted; +} + void canvas_frame_set( Canvas* canvas, int32_t offset_x, @@ -143,8 +151,8 @@ const CanvasFontParameters* canvas_get_font_params(const Canvas* canvas, Font fo void canvas_clear(Canvas* canvas) { furi_check(canvas); - - if(lcd_inverted) { + + if(canvas->lcd_inverse) { u8g2_FillBuffer(&canvas->fb); } else { u8g2_ClearBuffer(&canvas->fb); @@ -154,7 +162,7 @@ void canvas_clear(Canvas* canvas) { void canvas_set_color(Canvas* canvas, Color color) { furi_check(canvas); - if(lcd_inverted) { + if(canvas->lcd_inverse) { if(color == ColorBlack) { color = ColorWhite; } else if(color == ColorWhite) { @@ -170,10 +178,10 @@ void canvas_set_font_direction(Canvas* canvas, CanvasDirection dir) { } void canvas_invert_color(Canvas* canvas) { - if((canvas->fb.draw_color == ColorXOR) && lcd_inverted) { + if((canvas->fb.draw_color == ColorXOR) && canvas->lcd_inverse) { // ColorXOR = 0x02, inversion change it to White = 0x00 // but if we have lcd_inverse ON then we need Black =0x01 instead White 0x00 - // so we force changing color to black + // so we force changing color to black canvas->fb.draw_color = ColorBlack; } else { canvas->fb.draw_color = !canvas->fb.draw_color; diff --git a/applications/services/gui/canvas.h b/applications/services/gui/canvas.h index efd314687..8257c481d 100644 --- a/applications/services/gui/canvas.h +++ b/applications/services/gui/canvas.h @@ -447,6 +447,10 @@ void canvas_draw_icon_bitmap( int16_t h, const Icon* icon); +bool canvas_is_inverted_lcd(Canvas* canvas); + +void canvas_set_inverted_lcd(Canvas* canvas, bool inverted); + #ifdef __cplusplus } #endif diff --git a/applications/services/gui/canvas_i.h b/applications/services/gui/canvas_i.h index 449db71db..d342c07f5 100644 --- a/applications/services/gui/canvas_i.h +++ b/applications/services/gui/canvas_i.h @@ -47,6 +47,7 @@ struct Canvas { CompressIcon* compress_icon; CanvasCallbackPairArray_t canvas_callback_pair; FuriMutex* mutex; + bool lcd_inverse; }; /** Allocate memory and initialize canvas diff --git a/applications/services/notification/notification_app.c b/applications/services/notification/notification_app.c index 8a059586d..f57900fc5 100644 --- a/applications/services/notification/notification_app.c +++ b/applications/services/notification/notification_app.c @@ -620,7 +620,11 @@ static NotificationApp* notification_app_alloc(void) { furi_timer_alloc(night_shift_timer_callback, FuriTimerTypePeriodic, app); // --- NIGHT SHIFT END --- - lcd_inverted = false; + Gui* tmp_gui = furi_record_open(RECORD_GUI); + Canvas* tmp_canvas = gui_direct_draw_acquire(tmp_gui); + canvas_set_inverted_lcd(tmp_canvas, false); + gui_direct_draw_release(tmp_gui); + furi_record_close(RECORD_GUI); return app; } @@ -653,8 +657,12 @@ static void notification_apply_settings(NotificationApp* app) { } // --- NIGHT SHIFT END --- - //setup global variable "inverted" by settings value; - lcd_inverted = app->settings.lcd_inverse; + //setup canvas variable "inverse" by settings value; + Gui* tmp_gui = furi_record_open(RECORD_GUI); + Canvas* tmp_canvas = gui_direct_draw_acquire(tmp_gui); + canvas_set_inverted_lcd(tmp_canvas, app->settings.lcd_inverse); + gui_direct_draw_release(tmp_gui); + furi_record_close(RECORD_GUI); } static void notification_init_settings(NotificationApp* app) { diff --git a/applications/services/notification/notification_app.h b/applications/services/notification/notification_app.h index 30673f470..c0b64b807 100644 --- a/applications/services/notification/notification_app.h +++ b/applications/services/notification/notification_app.h @@ -70,6 +70,3 @@ struct NotificationApp { void notification_message_save_settings(NotificationApp* app); void night_shift_timer_start(NotificationApp* app); void night_shift_timer_stop(NotificationApp* app); - -//global variable for using in canvac.c -extern bool lcd_inverted; diff --git a/applications/settings/notification_settings/notification_settings_app.c b/applications/settings/notification_settings/notification_settings_app.c index 25fc264f8..d313714fc 100644 --- a/applications/settings/notification_settings/notification_settings_app.c +++ b/applications/settings/notification_settings/notification_settings_app.c @@ -355,11 +355,11 @@ static void lcd_inverse_changed(VariableItem* item) { variable_item_set_current_value_text(item, lcd_inverse_text[index]); app->notification->settings.lcd_inverse = lcd_inverse_value[index]; - //setup global variable for using in canvas.c - lcd_inverted = lcd_inverse_value[index]; + Canvas* tmp_canvas = gui_direct_draw_acquire(app->gui); + canvas_set_inverted_lcd(tmp_canvas, lcd_inverse_value[index]); + gui_direct_draw_release(app->gui); notification_message(app->notification, &sequence_display_backlight_on); - } //--- RGB BACKLIGHT --- diff --git a/targets/f7/api_symbols.csv b/targets/f7/api_symbols.csv index 384ae1ea4..db6a1c242 100755 --- a/targets/f7/api_symbols.csv +++ b/targets/f7/api_symbols.csv @@ -852,12 +852,14 @@ Function,+,canvas_get_font_params,const CanvasFontParameters*,"const Canvas*, Fo Function,+,canvas_glyph_width,size_t,"Canvas*, uint16_t" Function,+,canvas_height,size_t,const Canvas* Function,+,canvas_invert_color,void,Canvas* +Function,+,canvas_is_inverted_lcd,_Bool,Canvas* Function,+,canvas_reset,void,Canvas* Function,+,canvas_set_bitmap_mode,void,"Canvas*, _Bool" Function,+,canvas_set_color,void,"Canvas*, Color" Function,+,canvas_set_custom_u8g2_font,void,"Canvas*, const uint8_t*" Function,+,canvas_set_font,void,"Canvas*, Font" Function,+,canvas_set_font_direction,void,"Canvas*, CanvasDirection" +Function,+,canvas_set_inverted_lcd,void,"Canvas*, _Bool" Function,+,canvas_string_width,uint16_t,"Canvas*, const char*" Function,+,canvas_width,size_t,const Canvas* Function,-,cbrt,double,double @@ -3663,8 +3665,8 @@ Function,+,subghz_worker_set_pair_callback,void,"SubGhzWorker*, SubGhzWorkerPair Function,+,subghz_worker_start,void,SubGhzWorker* Function,+,subghz_worker_stop,void,SubGhzWorker* Function,+,submenu_add_item,void,"Submenu*, const char*, uint32_t, SubmenuItemCallback, void*" -Function,+,submenu_add_lockable_item,void,"Submenu*, const char*, uint32_t, SubmenuItemCallback, void*, _Bool, const char*" Function,+,submenu_add_item_ex,void,"Submenu*, const char*, uint32_t, SubmenuItemCallbackEx, void*" +Function,+,submenu_add_lockable_item,void,"Submenu*, const char*, uint32_t, SubmenuItemCallback, void*, _Bool, const char*" Function,+,submenu_alloc,Submenu*, Function,+,submenu_change_item_label,void,"Submenu*, uint32_t, const char*" Function,+,submenu_free,void,Submenu* From 75c8cb9715244ea0213e8bdc6a2cea9129c6bc64 Mon Sep 17 00:00:00 2001 From: Dmitry422 Date: Thu, 10 Apr 2025 00:55:02 +0700 Subject: [PATCH 4/4] Cosmetic code changes --- applications/services/gui/canvas.c | 12 +++++------ applications/services/gui/canvas_i.h | 2 +- .../services/notification/notification_app.c | 4 ++-- .../services/notification/notification_app.h | 2 +- .../notification_settings_app.c | 20 +++++++++---------- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/applications/services/gui/canvas.c b/applications/services/gui/canvas.c index 9c19853d3..573ad185e 100644 --- a/applications/services/gui/canvas.c +++ b/applications/services/gui/canvas.c @@ -96,12 +96,12 @@ size_t canvas_get_buffer_size(const Canvas* canvas) { bool canvas_is_inverted_lcd(Canvas* canvas) { furi_assert(canvas); - return canvas->lcd_inverse; + return canvas->lcd_inversion; } void canvas_set_inverted_lcd(Canvas* canvas, bool inverted) { furi_assert(canvas); - canvas->lcd_inverse = inverted; + canvas->lcd_inversion = inverted; } void canvas_frame_set( @@ -152,7 +152,7 @@ const CanvasFontParameters* canvas_get_font_params(const Canvas* canvas, Font fo void canvas_clear(Canvas* canvas) { furi_check(canvas); - if(canvas->lcd_inverse) { + if(canvas->lcd_inversion) { u8g2_FillBuffer(&canvas->fb); } else { u8g2_ClearBuffer(&canvas->fb); @@ -162,7 +162,7 @@ void canvas_clear(Canvas* canvas) { void canvas_set_color(Canvas* canvas, Color color) { furi_check(canvas); - if(canvas->lcd_inverse) { + if(canvas->lcd_inversion) { if(color == ColorBlack) { color = ColorWhite; } else if(color == ColorWhite) { @@ -178,9 +178,9 @@ void canvas_set_font_direction(Canvas* canvas, CanvasDirection dir) { } void canvas_invert_color(Canvas* canvas) { - if((canvas->fb.draw_color == ColorXOR) && canvas->lcd_inverse) { + if((canvas->fb.draw_color == ColorXOR) && canvas->lcd_inversion) { // ColorXOR = 0x02, inversion change it to White = 0x00 - // but if we have lcd_inverse ON then we need Black =0x01 instead White 0x00 + // but if we have lcd_inversion ON then we need Black =0x01 instead White 0x00 // so we force changing color to black canvas->fb.draw_color = ColorBlack; } else { diff --git a/applications/services/gui/canvas_i.h b/applications/services/gui/canvas_i.h index d342c07f5..420b97e0f 100644 --- a/applications/services/gui/canvas_i.h +++ b/applications/services/gui/canvas_i.h @@ -47,7 +47,7 @@ struct Canvas { CompressIcon* compress_icon; CanvasCallbackPairArray_t canvas_callback_pair; FuriMutex* mutex; - bool lcd_inverse; + bool lcd_inversion; }; /** Allocate memory and initialize canvas diff --git a/applications/services/notification/notification_app.c b/applications/services/notification/notification_app.c index f57900fc5..d416c89f9 100644 --- a/applications/services/notification/notification_app.c +++ b/applications/services/notification/notification_app.c @@ -657,10 +657,10 @@ static void notification_apply_settings(NotificationApp* app) { } // --- NIGHT SHIFT END --- - //setup canvas variable "inverse" by settings value; + //setup canvas variable "inversion" by settings value; Gui* tmp_gui = furi_record_open(RECORD_GUI); Canvas* tmp_canvas = gui_direct_draw_acquire(tmp_gui); - canvas_set_inverted_lcd(tmp_canvas, app->settings.lcd_inverse); + canvas_set_inverted_lcd(tmp_canvas, app->settings.lcd_inversion); gui_direct_draw_release(tmp_gui); furi_record_close(RECORD_GUI); } diff --git a/applications/services/notification/notification_app.h b/applications/services/notification/notification_app.h index c0b64b807..7ac8528f2 100644 --- a/applications/services/notification/notification_app.h +++ b/applications/services/notification/notification_app.h @@ -48,7 +48,7 @@ typedef struct { float night_shift; uint32_t night_shift_start; uint32_t night_shift_end; - bool lcd_inverse; + bool lcd_inversion; } NotificationSettings; struct NotificationApp { diff --git a/applications/settings/notification_settings/notification_settings_app.c b/applications/settings/notification_settings/notification_settings_app.c index d313714fc..4362039f0 100644 --- a/applications/settings/notification_settings/notification_settings_app.c +++ b/applications/settings/notification_settings/notification_settings_app.c @@ -270,12 +270,12 @@ const uint32_t night_shift_end_value[NIGHT_SHIFT_END_COUNT] = { // --- NIGHT SHIFT END --- -#define LCD_INVERSE_COUNT 2 -const char* const lcd_inverse_text[LCD_INVERSE_COUNT] = { +#define LCD_INVERSION_COUNT 2 +const char* const lcd_inversion_text[LCD_INVERSION_COUNT] = { "OFF", "ON", }; -const bool lcd_inverse_value[LCD_INVERSE_COUNT] = {false, true}; +const bool lcd_inversion_value[LCD_INVERSION_COUNT] = {false, true}; static void contrast_changed(VariableItem* item) { NotificationAppSettings* app = variable_item_get_context(item); @@ -348,15 +348,15 @@ static void vibro_changed(VariableItem* item) { notification_message(app->notification, &sequence_single_vibro); } -static void lcd_inverse_changed(VariableItem* item) { +static void lcd_inversion_changed(VariableItem* item) { NotificationAppSettings* app = variable_item_get_context(item); uint8_t index = variable_item_get_current_value_index(item); - variable_item_set_current_value_text(item, lcd_inverse_text[index]); - app->notification->settings.lcd_inverse = lcd_inverse_value[index]; + variable_item_set_current_value_text(item, lcd_inversion_text[index]); + app->notification->settings.lcd_inversion = lcd_inversion_value[index]; Canvas* tmp_canvas = gui_direct_draw_acquire(app->gui); - canvas_set_inverted_lcd(tmp_canvas, lcd_inverse_value[index]); + canvas_set_inverted_lcd(tmp_canvas, lcd_inversion_value[index]); gui_direct_draw_release(app->gui); notification_message(app->notification, &sequence_display_backlight_on); @@ -743,11 +743,11 @@ static NotificationAppSettings* alloc_settings(void) { } item = variable_item_list_add( - app->variable_item_list, "LCD Inverse", LCD_INVERSE_COUNT, lcd_inverse_changed, app); + app->variable_item_list,"LCD inversion",LCD_INVERSION_COUNT,lcd_inversion_changed,app); value_index = value_index_bool( - app->notification->settings.lcd_inverse, lcd_inverse_value, LCD_INVERSE_COUNT); + app->notification->settings.lcd_inversion, lcd_inversion_value, LCD_INVERSION_COUNT); variable_item_set_current_value_index(item, value_index); - variable_item_set_current_value_text(item, lcd_inverse_text[value_index]); + variable_item_set_current_value_text(item, lcd_inversion_text[value_index]); //--- RGB BACKLIGHT ---