From 630da663c4bef29d938f238d77016a9c84ddae6d Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Thu, 30 Mar 2023 00:51:49 +0200 Subject: [PATCH] Added support for APPEND_CR. Signed-off-by: Pol Henarejos --- src/usb/hid/ctap_hid.h | 1 + src/usb/hid/hid.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/usb/hid/ctap_hid.h b/src/usb/hid/ctap_hid.h index 6216f53..9d4c709 100644 --- a/src/usb/hid/ctap_hid.h +++ b/src/usb/hid/ctap_hid.h @@ -147,6 +147,7 @@ typedef struct { #define CTAP1_ERR_OTHER 0x7f // Other unspecified error extern void add_keyboard_buffer(const uint8_t *, size_t, bool); +extern void append_keyboard_buffer(const uint8_t *data, size_t data_len); #ifdef __cplusplus } diff --git a/src/usb/hid/hid.c b/src/usb/hid/hid.c index 196df39..2bdc6b8 100644 --- a/src/usb/hid/hid.c +++ b/src/usb/hid/hid.c @@ -169,6 +169,13 @@ void add_keyboard_buffer(const uint8_t *data, size_t data_len, bool encode) { keyboard_encode = encode; } +void append_keyboard_buffer(const uint8_t *data, size_t data_len) { + if (keyboard_buffer_len < sizeof(keyboard_buffer)) { + memcpy(keyboard_buffer + keyboard_buffer_len, data, MIN(sizeof(keyboard_buffer) - keyboard_buffer_len, data_len)); + keyboard_buffer_len += MIN(sizeof(keyboard_buffer) - keyboard_buffer_len, data_len); + } +} + static void send_hid_report(uint8_t report_id) { if (!tud_hid_ready()) { return;