Added Keyboard API templates
This commit is contained in:
parent
c4eb9c7ef2
commit
0f72656a8a
2 changed files with 28 additions and 86 deletions
|
|
@ -48,17 +48,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);
|
||||
|
||||
inline size_t press(uint8_t k);
|
||||
inline size_t press(KeyboardKeycode k);
|
||||
inline size_t press(KeyboardModifier k);
|
||||
template<class TYPE>
|
||||
inline size_t write(TYPE k);
|
||||
inline virtual size_t write(uint8_t k) override;
|
||||
|
||||
inline size_t release(uint8_t k);
|
||||
inline size_t release(KeyboardKeycode k);
|
||||
inline size_t release(KeyboardModifier k);
|
||||
|
||||
template<class TYPE>
|
||||
inline size_t press(TYPE k);
|
||||
|
||||
template<class TYPE>
|
||||
inline size_t release(TYPE k);
|
||||
|
||||
inline size_t add(uint8_t k);
|
||||
inline size_t add(KeyboardKeycode k);
|
||||
|
|
|
|||
|
|
@ -36,41 +36,26 @@ void KeyboardAPI::end(void)
|
|||
}
|
||||
|
||||
|
||||
// TODO template??
|
||||
template<class TYPE>
|
||||
size_t KeyboardAPI::write(TYPE k)
|
||||
{
|
||||
// Press and release key (if press was successfull)
|
||||
auto ret = press(k);
|
||||
if(ret){
|
||||
release(k);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
size_t KeyboardAPI::write(uint8_t k)
|
||||
{
|
||||
// Press and release key (if press was successfull)
|
||||
auto ret = press(k);
|
||||
if(ret){
|
||||
release(k);
|
||||
}
|
||||
return ret;
|
||||
return write<uint8_t>(k);
|
||||
}
|
||||
|
||||
|
||||
size_t KeyboardAPI::write(KeyboardKeycode k)
|
||||
{
|
||||
// Press and release key (if press was successfull)
|
||||
auto ret = press(k);
|
||||
if(ret){
|
||||
release(k);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
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)
|
||||
template<class TYPE>
|
||||
size_t KeyboardAPI::press(TYPE k)
|
||||
{
|
||||
// Press key and send report to host
|
||||
auto ret = add(k);
|
||||
|
|
@ -81,21 +66,11 @@ size_t KeyboardAPI::press(uint8_t k)
|
|||
}
|
||||
|
||||
|
||||
size_t KeyboardAPI::press(KeyboardKeycode k)
|
||||
template<class TYPE>
|
||||
size_t KeyboardAPI::release(TYPE 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);
|
||||
// Release key and send report to host
|
||||
auto ret = remove(k);
|
||||
if(ret){
|
||||
send_now();
|
||||
}
|
||||
|
|
@ -151,39 +126,6 @@ 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
|
||||
|
|
|
|||
Loading…
Reference in a new issue