From 78116dd40edca59716b668737cf8f26b75723e41 Mon Sep 17 00:00:00 2001 From: sanderpuh <16467665+sanderpuh@users.noreply.github.com> Date: Mon, 5 Aug 2024 10:54:19 +0200 Subject: [PATCH 1/5] Add quickswap options to inputs menu --- src/ui/page_source.c | 102 ++++++++++++++++++++++++++++++++----------- 1 file changed, 77 insertions(+), 25 deletions(-) diff --git a/src/ui/page_source.c b/src/ui/page_source.c index 7e3bf5dc..5a368137 100644 --- a/src/ui/page_source.c +++ b/src/ui/page_source.c @@ -124,37 +124,89 @@ void source_status_timer() { } } -static void page_source_on_click(uint8_t key, int sel) { - switch (sel) { - case 0: - progress_bar.start = 1; - app_switch_to_hdzero(true); - app_state_push(APP_STATE_VIDEO); - g_source_info.source = SOURCE_HDZERO; - dvr_select_audio_source(2); - dvr_enable_line_out(true); +static void page_source_select_hdzero() { + progress_bar.start = 1; + app_switch_to_hdzero(true); + app_state_push(APP_STATE_VIDEO); + g_source_info.source = SOURCE_HDZERO; + dvr_select_audio_source(2); + dvr_enable_line_out(true); +} + +static void page_source_select_hdmi() { + if (g_source_info.hdmi_in_status) + app_switch_to_hdmi_in(); +} + +static void page_source_select_av_in() { + app_switch_to_analog(0); + app_state_push(APP_STATE_VIDEO); + g_source_info.source = SOURCE_AV_IN; + dvr_select_audio_source(2); + dvr_enable_line_out(true); +} + +static void page_source_select_expansion() { + app_switch_to_analog(1); + app_state_push(APP_STATE_VIDEO); + g_source_info.source = SOURCE_EXPANSION; + dvr_select_audio_source(2); + dvr_enable_line_out(true); +} + +void source_toggle() { + switch(g_source_info.source) { + case SOURCE_HDZERO: + page_source_select_expansion(); + break; + case SOURCE_EXPANSION: + page_source_select_hdzero(); + break; + case SOURCE_AV_IN: + page_source_select_hdzero(); break; + case SOURCE_HDMI_IN: + page_source_select_hdzero(); + break; + } + Analog_Module_Power(0); +} - case 1: - if (g_source_info.hdmi_in_status) - app_switch_to_hdmi_in(); +void source_cycle() { + switch(g_source_info.source) { + case SOURCE_HDZERO: + if (g_source_info.hdmi_in_status) { + page_source_select_hdmi(); + } else { + page_source_select_av_in(); + } + break; + case SOURCE_EXPANSION: + page_source_select_hdzero(); break; + case SOURCE_AV_IN: + page_source_select_expansion(); + break; + case SOURCE_HDMI_IN: + page_source_select_av_in(); + break; + } + Analog_Module_Power(0); +} + +static void page_source_on_click(uint8_t key, int sel) { + switch (sel) { + case 0: // HDZero in + page_source_select_hdzero(); + + case 1: // HDMI in + page_source_select_hdmi(); case 2: // AV in - app_switch_to_analog(0); - app_state_push(APP_STATE_VIDEO); - g_source_info.source = SOURCE_AV_IN; - dvr_select_audio_source(2); - dvr_enable_line_out(true); - break; + page_source_select_av_in(); - case 3: // Module in - app_switch_to_analog(1); - app_state_push(APP_STATE_VIDEO); - g_source_info.source = SOURCE_EXPANSION; - dvr_select_audio_source(2); - dvr_enable_line_out(true); - break; + case 3: // Expansion module in + page_source_select_expansion(); case 4: // Analog video format btn_group_toggle_sel(&btn_group0); From c1a5c1317412d416218938a0fd014f01a47c0adb Mon Sep 17 00:00:00 2001 From: sanderpuh <16467665+sanderpuh@users.noreply.github.com> Date: Mon, 5 Aug 2024 10:55:05 +0200 Subject: [PATCH 2/5] Add quickswap options to inputs menu --- src/ui/page_source.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ui/page_source.h b/src/ui/page_source.h index 1b5aed0b..aeb2d0b9 100644 --- a/src/ui/page_source.h +++ b/src/ui/page_source.h @@ -11,6 +11,8 @@ extern "C" { extern page_pack_t pp_source; void source_status_timer(); +void source_toggle(); +void source_cycle(); #ifdef __cplusplus } From 1d017b489df76982c35a3251fa4ef03a16895d4a Mon Sep 17 00:00:00 2001 From: sanderpuh <16467665+sanderpuh@users.noreply.github.com> Date: Mon, 5 Aug 2024 10:59:45 +0200 Subject: [PATCH 3/5] Add quickswap options to inputs menu --- src/ui/page_input.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ui/page_input.c b/src/ui/page_input.c index fdf1acbc..4779dc4d 100644 --- a/src/ui/page_input.c +++ b/src/ui/page_input.c @@ -11,6 +11,7 @@ #include "core/osd.h" #include "ui/page_fans.h" +#include "ui/page_source.h" #include "ui/ui_image_setting.h" /** @@ -36,8 +37,8 @@ typedef enum page_input_rows { static lv_coord_t col_dsc[] = {160, 200, 160, 160, 160, 120, LV_GRID_TEMPLATE_LAST}; static lv_coord_t row_dsc[] = {60, 60, 60, 60, 60, 60, 60, 60, 60, LV_GRID_TEMPLATE_LAST}; -const char *btnOptions[] = {"Toggle OSD", "Main menu", "Toggle DVR", "Center HT", "Calibrate HT", "Go Sleep!", "Toggle fan speed", "Star DVR"}; -void (* const btnFunctionPointers[])() = {&osd_toggle, &app_switch_to_menu, &dvr_toggle, &ht_set_center_position, &ht_calibrate, &go_sleep, &step_topfan, &dvr_star}; +const char *btnOptions[] = {"Toggle OSD", "Main menu", "Toggle DVR", "Center HT", "Calibrate HT", "Go Sleep!", "Toggle fan speed", "Star DVR", "Toggle source", "Cycle source"}; +void (* const btnFunctionPointers[])() = {&osd_toggle, &app_switch_to_menu, &dvr_toggle, &ht_set_center_position, &ht_calibrate, &go_sleep, &step_topfan, &dvr_star, &source_toggle, &source_cycle}; const char *rollerOptions[] = {"Switch channel", "Change fan speed", "OLED Brightness"}; void (* const rollerFunctionPointers[])(uint8_t) = {&tune_channel, &change_topfan, &change_oled_brightness}; From 6c2ec8433fda3619c91809d15bbd62baab97425c Mon Sep 17 00:00:00 2001 From: sanderpuh <16467665+sanderpuh@users.noreply.github.com> Date: Mon, 5 Aug 2024 17:24:05 +0200 Subject: [PATCH 4/5] Add quickswap options to inputs menu --- src/ui/page_source.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ui/page_source.c b/src/ui/page_source.c index 5a368137..33ef8810 100644 --- a/src/ui/page_source.c +++ b/src/ui/page_source.c @@ -11,6 +11,7 @@ #include "core/dvr.h" #include "core/osd.h" #include "core/settings.h" +#include "driver/beep.h" #include "driver/hardware.h" #include "driver/it66121.h" #include "driver/oled.h" @@ -155,6 +156,7 @@ static void page_source_select_expansion() { } void source_toggle() { + beep_dur(BEEP_SHORT); switch(g_source_info.source) { case SOURCE_HDZERO: page_source_select_expansion(); @@ -173,6 +175,7 @@ void source_toggle() { } void source_cycle() { + beep_dur(BEEP_SHORT); switch(g_source_info.source) { case SOURCE_HDZERO: if (g_source_info.hdmi_in_status) { From 4165a4b72edce3e95137d5dfbccb750377dd214b Mon Sep 17 00:00:00 2001 From: sanderpuh <16467665+sanderpuh@users.noreply.github.com> Date: Mon, 5 Aug 2024 17:30:27 +0200 Subject: [PATCH 5/5] Add quickswap options to inputs menu --- src/ui/page_input.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ui/page_input.c b/src/ui/page_input.c index 4779dc4d..8e8a49fd 100644 --- a/src/ui/page_input.c +++ b/src/ui/page_input.c @@ -35,7 +35,7 @@ typedef enum page_input_rows { * Compile-unit local variables, constants and fields */ static lv_coord_t col_dsc[] = {160, 200, 160, 160, 160, 120, LV_GRID_TEMPLATE_LAST}; -static lv_coord_t row_dsc[] = {60, 60, 60, 60, 60, 60, 60, 60, 60, LV_GRID_TEMPLATE_LAST}; +static lv_coord_t row_dsc[] = {60, 60, 60, 60, 60, 60, 60, 60, 80, LV_GRID_TEMPLATE_LAST}; const char *btnOptions[] = {"Toggle OSD", "Main menu", "Toggle DVR", "Center HT", "Calibrate HT", "Go Sleep!", "Toggle fan speed", "Star DVR", "Toggle source", "Cycle source"}; void (* const btnFunctionPointers[])() = {&osd_toggle, &app_switch_to_menu, &dvr_toggle, &ht_set_center_position, &ht_calibrate, &go_sleep, &step_topfan, &dvr_star, &source_toggle, &source_cycle}; @@ -211,7 +211,8 @@ static lv_obj_t *page_input_create(lv_obj_t *parent, panel_arr_t *arr) { pageItems[BACK_BTN] = create_label_item(content, "< Back", 1, BACK_BTN, 1); lv_obj_t *label = lv_label_create(content); - lv_label_set_text(label, "*Settings apply to video mode only"); + lv_label_set_text(label, "*Settings apply to video mode only\n" + "'Toggle source' will switch between HDZero and Expansion module"); lv_obj_set_style_text_font(label, &lv_font_montserrat_16, 0); lv_obj_set_style_pad_top(label, 12, 0); lv_obj_set_grid_cell(label, LV_GRID_ALIGN_START, 1, 2, LV_GRID_ALIGN_START, pp_input.p_arr.max, 1);