Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: C64-stm429_discovery
Revision 7:9dc1cb9d5e12, committed 2020-04-13
- Comitter:
- davervw
- Date:
- Mon Apr 13 05:25:10 2020 +0000
- Parent:
- 6:d3ac9e1c0035
- Commit message:
- Added handler to USBHostHID/USBHostKeyboard.cpp:; void (*onKeyData)(uint8_t len, uint8_t* data);; so can get raw keyboard data for all keys simultaneously pressed, and all releases and periodic data
Changed in this revision
--- a/USBHostHID/USBHostKeyboard.cpp Wed Apr 26 20:08:31 2017 +0000
+++ b/USBHostHID/USBHostKeyboard.cpp Mon Apr 13 05:25:10 2020 +0000
@@ -146,6 +146,9 @@
int index = (len == 9) ? 1 : 0;
int len_listen = int_in->getSize();
uint8_t key = 0;
+ if (len > 0 && onKeyData) {
+ (*onKeyData)(len, report);
+ }
if (len == 8 || len == 9) {
uint8_t modifier = (report[index] == 4) ? 3 : report[index];
len_listen = len;
@@ -157,6 +160,7 @@
(*onKeyCode)(report[index + 2], modifier);
}
}
+
if (dev && int_in)
host->interruptRead(dev, int_in, report, len_listen, false);
}
--- a/USBHostHID/USBHostKeyboard.h Wed Apr 26 20:08:31 2017 +0000
+++ b/USBHostHID/USBHostKeyboard.h Mon Apr 13 05:25:10 2020 +0000
@@ -70,6 +70,17 @@
}
}
+ /**
+ * Attach a callback called when data received from keyboard
+ *
+ * @param ptr function pointer
+ */
+ inline void attach(void (*ptr)(uint8_t size, uint8_t* data)) {
+ if (ptr != NULL) {
+ onKeyData = ptr;
+ }
+ }
+
protected:
//From IUSBEnumerator
virtual void setVidPid(uint16_t vid, uint16_t pid);
@@ -90,6 +101,7 @@
void (*onKey)(uint8_t key);
void (*onKeyCode)(uint8_t key, uint8_t modifier);
+ void (*onKeyData)(uint8_t len, uint8_t* data);
int report_id;