From 23fd4df110c190895a98e2771a6a1d008f0752f8 Mon Sep 17 00:00:00 2001 From: Marcus Kida Date: Mon, 13 Jul 2026 10:02:16 +0200 Subject: [PATCH] Themes: add 'Vertexic' orange preset New theme preset: orange (#FF6A00) background with black text by day, inverted (orange on black) at night. Vertex-style amber/orange look. Documented in MANUAL.md and the README. Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 3 ++- MANUAL.md | 1 + MDUV380_firmware/application/include/hardware/HX8353E.h | 1 + .../application/source/hardware/HX8353E_display.c | 5 +++++ .../application/source/user_interface/menuDisplayOptions.c | 2 +- README.md | 4 ++-- 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 16cc0ee..4685c48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,8 @@ single running list until the first versioned release. - **Theme presets** — selectable on the radio in Display Options → "Theme": **Custom** (CPS-editable, default), **BASIC 80s** (Commodore 64 blue/light-blue), - and **Terminal** (green-on-black night / black-on-green day). The choice is stored + **Terminal** (green-on-black night / black-on-green day), and **Vertexic** + (amber/orange, black-on-amber day / amber-on-black night). The choice is stored in the codeplug custom-data area (migration-safe; defaults to Custom), and CPS theme edits only ever change Custom. - **Fix:** green LED **flickering** between the red flashes while muted during a DMR diff --git a/MANUAL.md b/MANUAL.md index 8c99540..21cbf29 100644 --- a/MANUAL.md +++ b/MANUAL.md @@ -65,6 +65,7 @@ Pick a colour theme on the radio at **Menu → Options → Display Options → " - **Custom** — the theme edited via the CPS or the on-radio colour editor (default). - **BASIC 80s** — a Commodore-64 look (light blue on blue). - **Terminal** — a green terminal (green-on-black at night, black-on-green by day). +- **Vertexic** — amber/orange (black-on-amber by day, amber-on-black at night). Editing colours in the CPS only affects **Custom**; the two built-in presets are fixed. Every element (S-meter, frequencies, menus) follows the selected theme. diff --git a/MDUV380_firmware/application/include/hardware/HX8353E.h b/MDUV380_firmware/application/include/hardware/HX8353E.h index 60342a4..adff061 100644 --- a/MDUV380_firmware/application/include/hardware/HX8353E.h +++ b/MDUV380_firmware/application/include/hardware/HX8353E.h @@ -276,6 +276,7 @@ typedef enum THEME_PRESET_CUSTOM = 0, // editable via CPS / on-device colour editor THEME_PRESET_BASIC80S, // Commodore 64 BASIC (light blue on blue) THEME_PRESET_TERMINAL, // green terminal (green-on-black night / black-on-green day) + THEME_PRESET_VERTEXIC, // amber/orange (black-on-amber day / amber-on-black night) NUM_THEME_PRESETS } themePreset_t; diff --git a/MDUV380_firmware/application/source/hardware/HX8353E_display.c b/MDUV380_firmware/application/source/hardware/HX8353E_display.c index 7613cda..beab855 100644 --- a/MDUV380_firmware/application/source/hardware/HX8353E_display.c +++ b/MDUV380_firmware/application/source/hardware/HX8353E_display.c @@ -1548,6 +1548,11 @@ void themeApplyPreset(uint8_t preset) themeSetAllItems(NIGHT, 0x00E000, 0x000000); // green on black break; + case THEME_PRESET_VERTEXIC: // orange (Vertex-style) + themeSetAllItems(DAY, 0x000000, 0xFF6A00); // black on orange + themeSetAllItems(NIGHT, 0xFF6A00, 0x000000); // orange on black + break; + case THEME_PRESET_CUSTOM: default: // Overlay the user's Custom theme from the codeplug, if present (CPS edits diff --git a/MDUV380_firmware/application/source/user_interface/menuDisplayOptions.c b/MDUV380_firmware/application/source/user_interface/menuDisplayOptions.c index f791474..480a844 100644 --- a/MDUV380_firmware/application/source/user_interface/menuDisplayOptions.c +++ b/MDUV380_firmware/application/source/user_interface/menuDisplayOptions.c @@ -276,7 +276,7 @@ static void updateScreen(bool isFirstRun) case DISPLAY_THEME_PRESET: { // Preset names are plain literals -> rightSideVar (voice-safe). - const char *presetNames[] = { "Custom", "BASIC 80s", "Terminal" }; + const char *presetNames[] = { "Custom", "BASIC 80s", "Terminal", "Vertexic" }; uint8_t p = themeGetPreset(); leftSide = "Theme"; snprintf(rightSideVar, SCREEN_LINE_BUFFER_SIZE, "%s", presetNames[(p < NUM_THEME_PRESETS) ? p : 0]); diff --git a/README.md b/README.md index 8181293..4cce1ac 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,8 @@ FreeTRX keeps OpenGD77's core (DMR/FM, hotspot, CPS compatibility) and adds: - **Screen dimming** — optionally dim the backlight to 100 / 50 / 30 / 15 % after inactivity (Auto backlight mode); new setting in Display Options. - **Theme presets** — pick a colour theme on the radio: **Custom** (CPS-editable, - default), **BASIC 80s** (Commodore 64), or **Terminal** (green-on-black). CPS edits - only affect Custom. + default), **BASIC 80s** (Commodore 64), **Terminal** (green-on-black), or + **Vertexic** (amber/orange). CPS edits only affect Custom. - **On-radio channel management** — create and delete channels directly from the Channel quick menu, no PC/CPS required (see [Managing channels](#managing-channels-on-the-radio)). - **Main-menu icons** next to each top-level entry.