Use on-board LEDs to display joy/mouse emulation.

This commit is contained in:
sorgelig
2018-01-20 21:39:21 +08:00
parent 098f922617
commit 20dedcf16c
2 changed files with 25 additions and 0 deletions

View File

@@ -168,6 +168,27 @@ static void user_io_read_core_name()
printf("Core name is \"%s\"\n", core_name);
}
static void set_emu_leds()
{
uint8_t emu_led = 0;
switch (emu_mode)
{
case EMU_JOY0:
emu_led = 0x20;
break;
case EMU_JOY1:
emu_led = 0x40;
break;
case EMU_MOUSE:
emu_led = 0x60;
break;
}
spi_uio_cmd16(UIO_LEDS, 0x6000 | emu_led);
}
static void set_kbd_led(unsigned char led, bool on)
{
if (led & HID_LED_CAPS_LOCK)
@@ -210,6 +231,7 @@ static void parse_config()
emu_mode = EMU_JOY0;
input_notify_mode();
set_kbd_led(HID_LED_NUM_LOCK, true);
set_emu_leds();
}
joy_bcount = 0;
@@ -1809,6 +1831,8 @@ void user_io_kbd(uint16_t key, int press)
if (emu_mode == EMU_MOUSE || emu_mode == EMU_JOY1) set_kbd_led(HID_LED_SCROLL_LOCK, true);
else set_kbd_led(HID_LED_SCROLL_LOCK, false);
set_emu_leds();
}
}
else

View File

@@ -57,6 +57,7 @@
#define UIO_RTC 0x22 // transmit RTC data to core
#define UIO_GET_VRES 0x23 // get video resolution
#define UIO_TIMESTAMP 0x24 // transmit seconds since Unix epoch
#define UIO_LEDS 0x25 // control on-board LEDs
// codes as used by 8bit for file loading from OSD
#define UIO_FILE_TX 0x53