stm32 hid cleanup

This commit is contained in:
Maxim Devaev
2022-07-22 09:14:49 +03:00
parent d3dbf19399
commit 3a9b433000
12 changed files with 206 additions and 720 deletions

View File

@@ -19,16 +19,18 @@
# #
*****************************************************************************/
#pragma once
#include <USBComposite.h>
#include "tools.h"
#include "keyboard.h"
#include "hid-wrapper-stm32.h"
#include <USBComposite.h>
#include "keymap.h"
#include "tools.h"
namespace DRIVERS {
const uint8_t reportDescriptionKeyboard[] = {
HID_KEYBOARD_REPORT_DESCRIPTOR(),
};
@@ -51,25 +53,30 @@ namespace DRIVERS {
void sendKey(uint8_t code, bool state) override {
uint16_t usb_code = keymapUsb(code);
if (usb_code == KEY_ERROR_UNDEFINED) {
if (usb_code == 0) {
return;
}
if(usb_code >= KEY_LEFT_CTRL && usb_code <= KEY_RIGHT_WINDOWS) {
usb_code = usb_code - KEY_LEFT_CTRL + 0x80;
// 0xE0 is a prefix from HID-Project keytable
if (usb_code >= 0xE0 && usb_code <= 0xE7) {
usb_code = usb_code - 0xE0 + 0x80;
} else {
usb_code += KEY_HID_OFFSET;
}
state ? _keyboard.press(usb_code) : _keyboard.release(usb_code);
if (state) {
_keyboard.press(usb_code);
} else {
_keyboard.release(usb_code);
}
}
bool isOffline() override {
return USBComposite == false;
return (USBComposite == false);
}
KeyboardLedsState getLeds() override {
uint8 leds = _keyboard.getLEDs();
uint8_t leds = _keyboard.getLEDs();
KeyboardLedsState result = {
.caps = leds & 0b00000010,
.scroll = leds & 0b00000100,
@@ -81,6 +88,5 @@ namespace DRIVERS {
private:
HidWrapper& _hidWrapper;
HIDKeyboard _keyboard;
static constexpr uint8 KEY_ERROR_UNDEFINED = 3;
};
}