Display OSD notification on VGA output when FB is active.
This commit is contained in:
33
menu.cpp
33
menu.cpp
@@ -1013,10 +1013,39 @@ void HandleUI(void)
|
||||
case MENU_NONE1:
|
||||
helptext = helptexts[HELPTEXT_NONE];
|
||||
menumask = 0;
|
||||
OsdDisable();
|
||||
menustate = MENU_NONE2;
|
||||
OsdSetSize(8);
|
||||
firstmenu = 0;
|
||||
|
||||
if (video_fb_state())
|
||||
{
|
||||
EnableOsd_on(OSD_VGA);
|
||||
OsdSetSize(16);
|
||||
OsdSetTitle("Information");
|
||||
int n = 0;
|
||||
OsdWrite(n++);
|
||||
OsdWrite(n++);
|
||||
OsdWrite(n++);
|
||||
OsdWrite(n++);
|
||||
OsdWrite(n++, " If you see this, then you");
|
||||
OsdWrite(n++, " need to modify MiSTer.ini");
|
||||
OsdWrite(n++);
|
||||
OsdWrite(n++, " Either disable framebuffer:");
|
||||
OsdWrite(n++, " fb_terminal=0");
|
||||
OsdWrite(n++);
|
||||
OsdWrite(n++, " or enable scaler on VGA:");
|
||||
OsdWrite(n++, " vga_scaler=1");
|
||||
for (; n < OsdGetSize(); n++) OsdWrite(n);
|
||||
OsdEnable(0);
|
||||
EnableOsd_on(OSD_HDMI);
|
||||
OsdDisable();
|
||||
EnableOsd_on(OSD_ALL);
|
||||
}
|
||||
else
|
||||
{
|
||||
OsdDisable();
|
||||
}
|
||||
|
||||
OsdSetSize(8);
|
||||
break;
|
||||
|
||||
case MENU_INFO:
|
||||
|
||||
18
spi.cpp
18
spi.cpp
@@ -72,14 +72,28 @@ void DisableFpga()
|
||||
spi_en(SSPI_FPGA_EN, 0);
|
||||
}
|
||||
|
||||
static int osd_target = OSD_ALL;
|
||||
|
||||
void EnableOsd_on(int target)
|
||||
{
|
||||
if (!(target & OSD_ALL)) target = OSD_ALL;
|
||||
osd_target = target;
|
||||
}
|
||||
|
||||
void EnableOsd()
|
||||
{
|
||||
spi_en(SSPI_OSD_EN, 1);
|
||||
if (!(osd_target & OSD_ALL)) osd_target = OSD_ALL;
|
||||
|
||||
uint32_t mask = SSPI_OSD_EN | SSPI_IO_EN | SSPI_FPGA_EN;
|
||||
if (osd_target & OSD_HDMI) mask &= ~SSPI_FPGA_EN;
|
||||
if (osd_target & OSD_VGA) mask &= ~SSPI_IO_EN;
|
||||
|
||||
spi_en(mask, 1);
|
||||
}
|
||||
|
||||
void DisableOsd()
|
||||
{
|
||||
spi_en(SSPI_OSD_EN, 0);
|
||||
spi_en(SSPI_OSD_EN | SSPI_IO_EN | SSPI_FPGA_EN, 0);
|
||||
}
|
||||
|
||||
void EnableIO()
|
||||
|
||||
5
spi.h
5
spi.h
@@ -3,6 +3,10 @@
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
#define OSD_HDMI 1
|
||||
#define OSD_VGA 2
|
||||
#define OSD_ALL (OSD_VGA|OSD_HDMI)
|
||||
|
||||
/* main init functions */
|
||||
void spi_init(int enable);
|
||||
|
||||
@@ -40,6 +44,7 @@ void spi_block_write_16be(const uint16_t *addr);
|
||||
void spi_block_read_16be(uint16_t *addr);
|
||||
|
||||
/* OSD related SPI functions */
|
||||
void EnableOsd_on(int target);
|
||||
void spi_osd_cmd_cont(uint8_t cmd);
|
||||
void spi_osd_cmd(uint8_t cmd);
|
||||
void spi_osd_cmd8_cont(uint8_t cmd, uint8_t parm);
|
||||
|
||||
Reference in New Issue
Block a user