From faa33e6a182f4967b882bed4e052e3653b30e2e9 Mon Sep 17 00:00:00 2001 From: NicoHood Date: Fri, 23 Oct 2015 22:14:04 +0200 Subject: [PATCH] Revert "Added Keyboard API templates" This reverts commit 0f72656a8a8ad03489ad8e8f783860c9b66d54fb. If not the right types are used (for example int) this adds some overhead. Nice to have, but better keep it simple --- src/HID-APIs/KeyboardAPI.h | 18 ++++----- src/HID-APIs/KeyboardAPI.hpp | 78 +++++++++++++++++++++++++++++++----- 2 files changed, 77 insertions(+), 19 deletions(-) diff --git a/src/HID-APIs/KeyboardAPI.h b/src/HID-APIs/KeyboardAPI.h index f646984..6a8df49 100644 --- a/src/HID-APIs/KeyboardAPI.h +++ b/src/HID-APIs/KeyboardAPI.h @@ -47,17 +47,17 @@ public: inline void begin(void); inline void end(void); + inline size_t write(uint8_t k); + inline size_t write(KeyboardKeycode k); + inline size_t write(KeyboardModifier k); - template - inline size_t write(TYPE k); - inline virtual size_t write(uint8_t k) override; + inline size_t press(uint8_t k); + inline size_t press(KeyboardKeycode k); + inline size_t press(KeyboardModifier k); - - template - inline size_t press(TYPE k); - - template - inline size_t release(TYPE k); + inline size_t release(uint8_t k); + inline size_t release(KeyboardKeycode k); + inline size_t release(KeyboardModifier k); inline size_t add(uint8_t k); inline size_t add(KeyboardKeycode k); diff --git a/src/HID-APIs/KeyboardAPI.hpp b/src/HID-APIs/KeyboardAPI.hpp index 0315f5d..fba968d 100644 --- a/src/HID-APIs/KeyboardAPI.hpp +++ b/src/HID-APIs/KeyboardAPI.hpp @@ -36,8 +36,8 @@ void KeyboardAPI::end(void) } -template -size_t KeyboardAPI::write(TYPE k) +// TODO template?? +size_t KeyboardAPI::write(uint8_t k) { // Press and release key (if press was successfull) auto ret = press(k); @@ -48,14 +48,29 @@ size_t KeyboardAPI::write(TYPE k) } -size_t KeyboardAPI::write(uint8_t k) +size_t KeyboardAPI::write(KeyboardKeycode k) { - return write(k); + // Press and release key (if press was successfull) + auto ret = press(k); + if(ret){ + release(k); + } + return ret; } -template -size_t KeyboardAPI::press(TYPE k) +size_t KeyboardAPI::write(KeyboardModifier k) +{ + // Press and release key (if press was successfull) + auto ret = press(k); + if(ret){ + release(k); + } + return ret; +} + + +size_t KeyboardAPI::press(uint8_t k) { // Press key and send report to host auto ret = add(k); @@ -66,11 +81,21 @@ size_t KeyboardAPI::press(TYPE k) } -template -size_t KeyboardAPI::release(TYPE k) +size_t KeyboardAPI::press(KeyboardKeycode k) { - // Release key and send report to host - auto ret = remove(k); + // Press key and send report to host + auto ret = add(k); + if(ret){ + send_now(); + } + return ret; +} + + +size_t KeyboardAPI::press(KeyboardModifier k) +{ + // Press modifier key and send report to host + auto ret = add(k); if(ret){ send_now(); } @@ -126,6 +151,39 @@ size_t KeyboardAPI::add(KeyboardModifier k) } +size_t KeyboardAPI::release(uint8_t k) +{ + // Release key and send report to host + auto ret = remove(k); + if(ret){ + send_now(); + } + return ret; +} + + +size_t KeyboardAPI::release(KeyboardKeycode k) +{ + // Release key and send report to host + auto ret = remove(k); + if(ret){ + send_now(); + } + return ret; +} + + +size_t KeyboardAPI::release(KeyboardModifier k) +{ + // Release modifier key and send report to host + auto ret = remove(k); + if(ret){ + send_now(); + } + return ret; +} + + size_t KeyboardAPI::remove(uint8_t k) { // Ignore invalid input