From c31fef05352f34e58d7b3c2a59f034c19ab15937 Mon Sep 17 00:00:00 2001 From: Totoo Date: Fri, 8 Nov 2024 08:47:22 +0100 Subject: [PATCH] Removed fake brightness (#2349) --- firmware/application/apps/ui_settings.cpp | 21 +-------- firmware/application/apps/ui_settings.hpp | 29 +----------- firmware/application/ui_navigation.cpp | 13 ----- firmware/application/ui_navigation.hpp | 6 --- firmware/common/portapack_io.cpp | 8 ---- firmware/common/portapack_io.hpp | 19 -------- .../common/portapack_persistent_memory.cpp | 47 ++----------------- .../common/portapack_persistent_memory.hpp | 17 ------- 8 files changed, 7 insertions(+), 153 deletions(-) diff --git a/firmware/application/apps/ui_settings.cpp b/firmware/application/apps/ui_settings.cpp index edad2c39..3af587dc 100644 --- a/firmware/application/apps/ui_settings.cpp +++ b/firmware/application/apps/ui_settings.cpp @@ -324,7 +324,6 @@ SetUIView::SetUIView(NavigationView& nav) { &toggle_bias_tee, &toggle_clock, &toggle_mute, - &toggle_fake_brightness, &toggle_sd_card, &button_save, &button_cancel}); @@ -362,7 +361,6 @@ SetUIView::SetUIView(NavigationView& nav) { toggle_clock.set_value(!pmem::ui_hide_clock()); toggle_speaker.set_value(!pmem::ui_hide_speaker()); toggle_mute.set_value(!pmem::ui_hide_mute()); - toggle_fake_brightness.set_value(!pmem::ui_hide_fake_brightness()); toggle_battery_icon.set_value(!pmem::ui_hide_battery_icon()); toggle_battery_text.set_value(!pmem::ui_hide_numeric_battery()); toggle_sd_card.set_value(!pmem::ui_hide_sd_card()); @@ -391,7 +389,6 @@ SetUIView::SetUIView(NavigationView& nav) { pmem::set_ui_hide_clock(!toggle_clock.value()); pmem::set_ui_hide_speaker(!toggle_speaker.value()); pmem::set_ui_hide_mute(!toggle_mute.value()); - pmem::set_ui_hide_fake_brightness(!toggle_fake_brightness.value()); pmem::set_ui_hide_battery_icon(!toggle_battery_icon.value()); pmem::set_ui_hide_numeric_battery(!toggle_battery_text.value()); pmem::set_ui_hide_sd_card(!toggle_sd_card.value()); @@ -780,20 +777,13 @@ void SetConfigModeView::focus() { /* SetDisplayView ************************************/ SetDisplayView::SetDisplayView(NavigationView& nav) { - add_children({&labels, - &field_fake_brightness, - &button_save, + add_children({&button_save, &button_cancel, - &checkbox_invert_switch, - &checkbox_brightness_switch}); + &checkbox_invert_switch}); - field_fake_brightness.set_by_value(pmem::fake_brightness_level()); - checkbox_brightness_switch.set_value(pmem::apply_fake_brightness()); checkbox_invert_switch.set_value(pmem::config_lcd_inverted_mode()); button_save.on_select = [&nav, this](Button&) { - pmem::set_apply_fake_brightness(checkbox_brightness_switch.value()); - pmem::set_fake_brightness_level(field_fake_brightness.selected_index_value()); if (checkbox_invert_switch.value() != pmem::config_lcd_inverted_mode()) { display.set_inverted(checkbox_invert_switch.value()); pmem::set_lcd_inverted_mode(checkbox_invert_switch.value()); @@ -801,13 +791,6 @@ SetDisplayView::SetDisplayView(NavigationView& nav) { send_system_refresh(); nav.pop(); }; - // only enable invert OR fake brightness - checkbox_invert_switch.on_select = [this](Checkbox&, bool v) { - if (v) checkbox_brightness_switch.set_value(false); - }; - checkbox_brightness_switch.on_select = [this](Checkbox&, bool v) { - if (v) checkbox_invert_switch.set_value(false); - }; button_cancel.on_select = [&nav, this](Button&) { nav.pop(); diff --git a/firmware/application/apps/ui_settings.hpp b/firmware/application/apps/ui_settings.hpp index 77ecea81..9d31429d 100644 --- a/firmware/application/apps/ui_settings.hpp +++ b/firmware/application/apps/ui_settings.hpp @@ -363,12 +363,8 @@ class SetUIView : public View { {19 * 8, 14 * 16 + 2, 16, 16}, &bitmap_icon_batt_text}; - ImageToggle toggle_fake_brightness{ - {21 * 8, 14 * 16 + 2, 16, 16}, - &bitmap_icon_brightness}; - ImageToggle toggle_sd_card{ - {23 * 8, 14 * 16 + 2, 16, 16}, + {21 * 8, 14 * 16 + 2, 16, 16}, &bitmap_sd_card_ok}; Button button_save{ @@ -710,8 +706,6 @@ class SetConfigModeView : public View { }; }; -using portapack::persistent_memory::fake_brightness_level_options; - class SetDisplayView : public View { public: SetDisplayView(NavigationView& nav); @@ -721,27 +715,8 @@ class SetDisplayView : public View { std::string title() const override { return "Display"; }; private: - Labels labels{ - {{1 * 8, 1 * 16}, "Limits screen brightness", Theme::getInstance()->fg_light->foreground}, - {{1 * 8, 2 * 16}, "(has a small performance", Theme::getInstance()->fg_light->foreground}, - {{1 * 8, 3 * 16}, "impact when enabled).", Theme::getInstance()->fg_light->foreground}, - {{2 * 8, 8 * 16}, "Brightness:", Theme::getInstance()->fg_light->foreground}, - }; - - OptionsField field_fake_brightness{ - {20 * 8, 8 * 16}, - 6, - {{"12.5%", fake_brightness_level_options::BRIGHTNESS_12p5}, - {"25%", fake_brightness_level_options::BRIGHTNESS_25}, - {"50%", fake_brightness_level_options::BRIGHTNESS_50}}}; - - Checkbox checkbox_brightness_switch{ - {1 * 8, 5 * 16}, - 16, - "Enable brightness adjust"}; - Checkbox checkbox_invert_switch{ - {1 * 8, 10 * 16}, + {1 * 8, 2 * 16}, 23, "Invert colors (For IPS)"}; diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index 8a0f77e0..0bc00353 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -308,15 +308,6 @@ SystemStatusView::SystemStatusView( battery_icon.on_select = [this]() { on_battery_details(); }; battery_text.on_select = [this]() { on_battery_details(); }; - button_fake_brightness.on_select = [this](ImageButton&) { - set_dirty(); - pmem::toggle_fake_brightness_level(); - refresh(); - if (nullptr != parent()) { - parent()->set_dirty(); // The parent of NavigationView shal be the SystemView - } - }; - button_bias_tee.on_select = [this](ImageButton&) { this->on_bias_tee(); }; @@ -383,7 +374,6 @@ void SystemStatusView::refresh() { // Display "Disable speaker" icon only if AK4951 Codec which has separate speaker/headphone control if (audio::speaker_disable_supported() && !pmem::ui_hide_speaker()) status_icons.add(&toggle_speaker); - if (!pmem::ui_hide_fake_brightness() && !pmem::config_lcd_inverted_mode()) status_icons.add(&button_fake_brightness); if (battery::BatteryManagement::isDetected()) { batt_was_inited = true; if (!pmem::ui_hide_battery_icon()) { @@ -416,9 +406,6 @@ void SystemStatusView::refresh() { button_converter.set_bitmap(pmem::config_updown_converter() ? &bitmap_icon_downconvert : &bitmap_icon_upconvert); button_converter.set_foreground(pmem::config_converter() ? Theme::getInstance()->fg_red->foreground : Theme::getInstance()->fg_light->foreground); - // Fake Brightness - button_fake_brightness.set_foreground((pmem::apply_fake_brightness() & (!pmem::config_lcd_inverted_mode())) ? *Theme::getInstance()->status_active : Theme::getInstance()->fg_light->foreground); - set_dirty(); } diff --git a/firmware/application/ui_navigation.hpp b/firmware/application/ui_navigation.hpp index 5931bef0..cbd86153 100644 --- a/firmware/application/ui_navigation.hpp +++ b/firmware/application/ui_navigation.hpp @@ -279,12 +279,6 @@ class SystemStatusView : public View { Theme::getInstance()->fg_light->foreground, Theme::getInstance()->bg_dark->background}; - ImageButton button_fake_brightness{ - {0, 0, 2 * 8, 1 * 16}, - &bitmap_icon_brightness, - *Theme::getInstance()->status_active, - Theme::getInstance()->bg_dark->background}; - SDCardStatusView sd_card_status_view{ {0, 0 * 16, 2 * 8, 1 * 16}}; diff --git a/firmware/common/portapack_io.cpp b/firmware/common/portapack_io.cpp index 25a725cd..e9eff2f9 100644 --- a/firmware/common/portapack_io.cpp +++ b/firmware/common/portapack_io.cpp @@ -77,18 +77,10 @@ void IO::reference_oscillator(const bool enable) { io_write(1, io_reg); } -bool IO::get_dark_cover() { - return portapack::persistent_memory::apply_fake_brightness() & (!portapack::persistent_memory::config_lcd_inverted_mode()); -} - bool IO::get_is_inverted() { return portapack::persistent_memory::config_lcd_inverted_mode(); } -uint8_t IO::get_brightness() { - return portapack::persistent_memory::fake_brightness_level(); -} - uint32_t IO::io_update(const TouchPinsConfig write_value) { /* Very touchy code to save context of PortaPack data bus while the * resistive touch pin drive is changed. Order of operations is diff --git a/firmware/common/portapack_io.hpp b/firmware/common/portapack_io.hpp index 09646f2f..96822366 100644 --- a/firmware/common/portapack_io.hpp +++ b/firmware/common/portapack_io.hpp @@ -162,9 +162,6 @@ class IO { } void lcd_write_pixel(ui::Color pixel) { - if (get_dark_cover()) { - pixel.v = DARKENED_PIXEL(pixel.v, get_brightness()); - } lcd_write_data(pixel.v); } @@ -173,18 +170,12 @@ class IO { } void lcd_write_pixels(ui::Color pixel, size_t n) { - if (get_dark_cover()) { - pixel.v = DARKENED_PIXEL(pixel.v, get_brightness()); - } while (n--) { lcd_write_data(pixel.v); } } void lcd_write_pixels_unrolled8(ui::Color pixel, size_t n) { - if (get_dark_cover()) { - pixel.v = DARKENED_PIXEL(pixel.v, get_brightness()); - } auto v = pixel.v; n >>= 3; while (n--) { @@ -232,9 +223,6 @@ class IO { return switches_raw; } bool get_is_inverted(); - bool get_dark_cover(); - uint8_t get_brightness(); - // TODO: cache the value ^^ & ^ to increaase performance, need a trigger cuz init doesn't work. And since the constructor is constexpr, we can't use with in class var to cache it. maybe cache from outside somewhere and pass it here as argument. uint32_t io_update(const TouchPinsConfig write_value); @@ -416,13 +404,6 @@ class IO { const auto value_low = data_read(); uint32_t original_value = (value_high << 8) | value_low; - if (get_is_inverted()) return original_value; - - if (get_dark_cover()) { - // this is read data, so if the fake brightness is enabled AKA get_dark_cover() == true, - // then shift to back side AKA UNDARKENED_PIXEL, to prevent read shifted darkern info - original_value = UNDARKENED_PIXEL(original_value, get_brightness()); - } return original_value; } diff --git a/firmware/common/portapack_persistent_memory.cpp b/firmware/common/portapack_persistent_memory.cpp index 58f9a0b0..77315955 100644 --- a/firmware/common/portapack_persistent_memory.cpp +++ b/firmware/common/portapack_persistent_memory.cpp @@ -109,7 +109,7 @@ struct ui_config_t { bool hide_clock : 1; bool clock_show_date : 1; bool clkout_enabled : 1; - bool apply_fake_brightness : 1; + bool unused_FB : 1; // apply_fake_brightness bool stealth_mode : 1; bool config_login : 1; bool config_splash : 1; @@ -130,7 +130,7 @@ struct ui_config2_t { bool hide_sd_card : 1; bool hide_mute : 1; - bool hide_fake_brightness : 1; + bool UNUSED_3 : 1; bool hide_numeric_battery : 1; bool hide_battery_icon : 1; bool override_batt_calc : 1; @@ -226,9 +226,6 @@ struct data_t { // Rotary encoder dial sensitivity (encoder.cpp/hpp) uint16_t encoder_dial_sensitivity : 4; - // fake brightness level (not switch, switch is in another place) - uint16_t fake_brightness_level : 4; - // Encoder rotation rate multiplier for larger increments when rotated rapidly uint16_t encoder_rate_multiplier : 4; @@ -300,7 +297,6 @@ struct data_t { frequency_tx_correction(0), encoder_dial_sensitivity(DIAL_SENSITIVITY_NORMAL), - fake_brightness_level(BRIGHTNESS_50), encoder_rate_multiplier(1), UNUSED(0), @@ -469,7 +465,6 @@ void init() { set_config_mode_storage_direct(config_mode_backup); // Firmware upgrade handling - adjust newly defined fields where 0 is an invalid default - if (fake_brightness_level() == 0) set_fake_brightness_level(BRIGHTNESS_50); if (menu_color().v == 0) set_menu_color(Color::grey()); } @@ -650,10 +645,6 @@ bool stealth_mode() { return data->ui_config.stealth_mode; } -bool apply_fake_brightness() { - return data->ui_config.apply_fake_brightness; -} - bool config_login() { return data->ui_config.config_login; } @@ -757,10 +748,6 @@ void set_config_backlight_timer(const backlight_config_t& new_value) { data->ui_config.enable_backlight_timeout = static_cast(new_value.timeout_enabled()); } -void set_apply_fake_brightness(const bool v) { - data->ui_config.apply_fake_brightness = v; -} - uint32_t pocsag_last_address() { return data->pocsag_last_address; } @@ -947,9 +934,7 @@ bool ui_hide_clock() { bool ui_hide_sd_card() { return data->ui_config2.hide_sd_card; } -bool ui_hide_fake_brightness() { - return data->ui_config2.hide_fake_brightness; -} + bool ui_hide_numeric_battery() { return data->ui_config2.hide_numeric_battery; } @@ -992,9 +977,6 @@ void set_ui_hide_clock(bool v) { void set_ui_hide_sd_card(bool v) { data->ui_config2.hide_sd_card = v; } -void set_ui_hide_fake_brightness(bool v) { - data->ui_config2.hide_fake_brightness = v; -} void set_ui_hide_numeric_battery(bool v) { data->ui_config2.hide_numeric_battery = v; } @@ -1112,26 +1094,6 @@ void set_config_dst(dst_config_t v) { rtc_time::dst_init(); } -// Fake brightness level (switch is in another place) -uint8_t fake_brightness_level() { - return data->fake_brightness_level; -} -void set_fake_brightness_level(uint8_t v) { - data->fake_brightness_level = v; -} - -// Cycle through 4 brightness options: disabled -> enabled/50% -> enabled/25% -> enabled/12.5% -> disabled -void toggle_fake_brightness_level() { - bool fbe = apply_fake_brightness(); - if (config_lcd_inverted_mode()) return; // for now only inverted mode OR fake brightness - if ((!fbe) || (data->fake_brightness_level >= BRIGHTNESS_12p5)) { - set_apply_fake_brightness(!fbe); - data->fake_brightness_level = BRIGHTNESS_50; - } else { - data->fake_brightness_level++; - } -} - // Menu Color Scheme Color menu_color() { return data->menu_color; @@ -1249,7 +1211,6 @@ bool debug_dump() { pmem_dump_file.write_line("headphone_volume_cb: " + to_string_dec_int(data->headphone_volume_cb)); pmem_dump_file.write_line("config_mode_storage: 0x" + to_string_hex(data->config_mode_storage, 8)); pmem_dump_file.write_line("dst_config: 0x" + to_string_hex((uint32_t)data->dst_config.v, 8)); - pmem_dump_file.write_line("fake_brightness_level: " + to_string_dec_uint(data->fake_brightness_level)); pmem_dump_file.write_line("menu_color: 0x" + to_string_hex(data->menu_color.v, 4)); pmem_dump_file.write_line("touchscreen_threshold: " + to_string_dec_uint(data->touchscreen_threshold)); @@ -1266,7 +1227,6 @@ bool debug_dump() { pmem_dump_file.write_line("ui_config hide_clock: " + to_string_dec_uint(data->ui_config.hide_clock)); pmem_dump_file.write_line("ui_config clock_with_date: " + to_string_dec_uint(data->ui_config.clock_show_date)); pmem_dump_file.write_line("ui_config clkout_enabled: " + to_string_dec_uint(data->ui_config.clkout_enabled)); - pmem_dump_file.write_line("ui_config apply_fake_brightness: " + to_string_dec_uint(data->ui_config.apply_fake_brightness)); pmem_dump_file.write_line("ui_config stealth_mode: " + to_string_dec_uint(data->ui_config.stealth_mode)); pmem_dump_file.write_line("ui_config config_login: " + to_string_dec_uint(data->ui_config.config_login)); pmem_dump_file.write_line("ui_config config_splash: " + to_string_dec_uint(data->ui_config.config_splash)); @@ -1281,7 +1241,6 @@ bool debug_dump() { pmem_dump_file.write_line("ui_config2 hide_clock: " + to_string_dec_uint(data->ui_config2.hide_clock)); pmem_dump_file.write_line("ui_config2 hide_sd_card: " + to_string_dec_uint(data->ui_config2.hide_sd_card)); pmem_dump_file.write_line("ui_config2 hide_mute: " + to_string_dec_uint(data->ui_config2.hide_mute)); - pmem_dump_file.write_line("ui_config2 hide_fake_brightness: " + to_string_dec_uint(data->ui_config2.hide_fake_brightness)); pmem_dump_file.write_line("ui_config2 hide_battery_icon: " + to_string_dec_uint(data->ui_config2.hide_battery_icon)); pmem_dump_file.write_line("ui_config2 hide_numeric_battery: " + to_string_dec_uint(data->ui_config2.hide_numeric_battery)); pmem_dump_file.write_line("ui_config2 theme_id: " + to_string_dec_uint(data->ui_config2.theme_id)); diff --git a/firmware/common/portapack_persistent_memory.hpp b/firmware/common/portapack_persistent_memory.hpp index 93da33ad..727a2003 100644 --- a/firmware/common/portapack_persistent_memory.hpp +++ b/firmware/common/portapack_persistent_memory.hpp @@ -135,12 +135,6 @@ typedef union { } dst_config_t; static_assert(sizeof(dst_config_t) == sizeof(uint32_t)); -enum fake_brightness_level_options { - BRIGHTNESS_50 = 1, - BRIGHTNESS_25 = 2, - BRIGHTNESS_12p5 = 3, // 12p5 is 12.5 -}; - namespace cache { /* Set values in cache to sensible defaults. */ @@ -273,15 +267,6 @@ uint16_t clkout_freq(); dst_config_t config_dst(); void set_config_dst(dst_config_t v); -/* Fake brightness */ -// switch (if do color change): -bool apply_fake_brightness(); -void set_apply_fake_brightness(const bool v); -// level (color change level): -uint8_t fake_brightness_level(); -void set_fake_brightness_level(uint8_t v); -void toggle_fake_brightness_level(); - /* Touchscreen threshold */ uint16_t touchscreen_threshold(); void set_touchscreen_threshold(uint16_t v); @@ -334,7 +319,6 @@ bool ui_hide_camera(); bool ui_hide_sleep(); bool ui_hide_bias_tee(); bool ui_hide_clock(); -bool ui_hide_fake_brightness(); bool ui_hide_numeric_battery(); bool ui_hide_battery_icon(); bool ui_hide_sd_card(); @@ -348,7 +332,6 @@ void set_ui_hide_camera(bool v); void set_ui_hide_sleep(bool v); void set_ui_hide_bias_tee(bool v); void set_ui_hide_clock(bool v); -void set_ui_hide_fake_brightness(bool v); void set_ui_hide_numeric_battery(bool v); void set_ui_hide_battery_icon(bool v); void set_ui_hide_sd_card(bool v);