summaryrefslogtreecommitdiff
path: root/ps2_vusb/keyboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'ps2_vusb/keyboard.c')
-rw-r--r--ps2_vusb/keyboard.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/ps2_vusb/keyboard.c b/ps2_vusb/keyboard.c
index 95f65887f..c480908f8 100644
--- a/ps2_vusb/keyboard.c
+++ b/ps2_vusb/keyboard.c
@@ -1,12 +1,30 @@
#include "usb_keycodes.h"
#include "host.h"
+#include "ps2.h"
+#include "usb.h"
#include "keyboard.h"
+#include "print.h"
static report_keyboard_t report0;
static report_keyboard_t report1;
static report_keyboard_t *report = &report0;
static report_keyboard_t *report_prev = &report1;
+
+void keyboard_set_led(uint8_t usb_led)
+{
+ uint8_t ps2_led = 0;
+ if (usb_led & (1<<USB_LED_SCROLL_LOCK))
+ ps2_led |= (1<<PS2_LED_SCROLL_LOCK);
+ if (usb_led & (1<<USB_LED_NUM_LOCK))
+ ps2_led |= (1<<PS2_LED_NUM_LOCK);
+ if (usb_led & (1<<USB_LED_CAPS_LOCK))
+ ps2_led |= (1<<PS2_LED_CAPS_LOCK);
+ print("ps2_led: "); phex(ps2_led); print("\n");
+
+ ps2_host_set_led(ps2_led);
+}
+
void keyboard_send(void)
{
host_keyboard_send(report);