From 74b352815016e09d753ceff2dff11825a81fbd95 Mon Sep 17 00:00:00 2001 From: sorgelig Date: Tue, 8 Dec 2020 13:21:32 +0800 Subject: [PATCH] Redraw OSD if mask has been changed. --- menu.cpp | 9 ++++++--- spi.cpp | 14 ++++++++------ spi.h | 6 +++--- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/menu.cpp b/menu.cpp index e2593f1..f1a7b8a 100644 --- a/menu.cpp +++ b/menu.cpp @@ -1526,9 +1526,7 @@ void HandleUI(void) /******************************************************************/ case MENU_GENERIC_MAIN1: { - spi_uio_cmd_cont(UIO_GET_OSDMASK); - hdmask = spi_w(0); - DisableIO(); + hdmask = spi_uio_cmd16(UIO_GET_OSDMASK, 0); user_io_read_confstr(); uint32_t s_entry = 0; int entry = 0; @@ -2121,6 +2119,11 @@ void HandleUI(void) menusub = 3; } } + else if(spi_uio_cmd16(UIO_GET_OSDMASK, 0) != hdmask) + { + menustate = MENU_GENERIC_MAIN1; + } + break; case MENU_GENERIC_FILE_SELECTED: diff --git a/spi.cpp b/spi.cpp index a258ebb..28169e9 100644 --- a/spi.cpp +++ b/spi.cpp @@ -116,24 +116,26 @@ uint8_t spi_uio_cmd(uint8_t cmd) return res; } -void spi_uio_cmd8_cont(uint8_t cmd, uint8_t parm) +uint8_t spi_uio_cmd8_cont(uint8_t cmd, uint8_t parm) { EnableIO(); spi_b(cmd); - spi_b(parm); + return spi_b(parm); } -void spi_uio_cmd8(uint8_t cmd, uint8_t parm) +uint8_t spi_uio_cmd8(uint8_t cmd, uint8_t parm) { - spi_uio_cmd8_cont(cmd, parm); + uint8_t res = spi_uio_cmd8_cont(cmd, parm); DisableIO(); + return res; } -void spi_uio_cmd16(uint8_t cmd, uint16_t parm) +uint16_t spi_uio_cmd16(uint8_t cmd, uint16_t parm) { spi_uio_cmd_cont(cmd); - spi_w(parm); + uint16_t res = spi_w(parm); DisableIO(); + return res; } void spi_uio_cmd32(uint8_t cmd, uint32_t parm, int wide) diff --git a/spi.h b/spi.h index 04a8f83..e80a381 100644 --- a/spi.h +++ b/spi.h @@ -54,9 +54,9 @@ void spi_osd_cmd8(uint8_t cmd, uint8_t parm); /* User_io related SPI functions */ uint8_t spi_uio_cmd_cont(uint8_t cmd); uint8_t spi_uio_cmd(uint8_t cmd); -void spi_uio_cmd8(uint8_t cmd, uint8_t parm); -void spi_uio_cmd8_cont(uint8_t cmd, uint8_t parm); -void spi_uio_cmd16(uint8_t cmd, uint16_t parm); +uint8_t spi_uio_cmd8_cont(uint8_t cmd, uint8_t parm); +uint8_t spi_uio_cmd8(uint8_t cmd, uint8_t parm); +uint16_t spi_uio_cmd16(uint8_t cmd, uint16_t parm); void spi_uio_cmd32(uint8_t cmd, uint32_t parm, int wide); void spi_uio_cmd32_cont(uint8_t cmd, uint32_t parm);