parent
c9734385c5
commit
7e73341772
@ -0,0 +1,142 @@
|
|||||||
|
#include "Kaleidoscope.h"
|
||||||
|
|
||||||
|
namespace kaleidoscope::hid {
|
||||||
|
void initializeKeyboard() {
|
||||||
|
Keyboard.begin();
|
||||||
|
}
|
||||||
|
|
||||||
|
void pressRawKey(Key mappedKey) {
|
||||||
|
Keyboard.press(mappedKey.keyCode);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void pressKey(Key mappedKey) {
|
||||||
|
if (mappedKey.flags & SHIFT_HELD) {
|
||||||
|
pressRawKey(Key_LeftShift);
|
||||||
|
}
|
||||||
|
if (mappedKey.flags & CTRL_HELD) {
|
||||||
|
pressRawKey(Key_LeftControl);
|
||||||
|
}
|
||||||
|
if (mappedKey.flags & LALT_HELD) {
|
||||||
|
pressRawKey(Key_LeftAlt);
|
||||||
|
}
|
||||||
|
if (mappedKey.flags & RALT_HELD) {
|
||||||
|
pressRawKey(Key_RightAlt);
|
||||||
|
}
|
||||||
|
if (mappedKey.flags & GUI_HELD) {
|
||||||
|
pressRawKey(Key_LeftGui);
|
||||||
|
}
|
||||||
|
|
||||||
|
pressRawKey(mappedKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
void releaseRawKey(Key mappedKey) {
|
||||||
|
Keyboard.release(mappedKey.keyCode);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void releaseAllKeys() {
|
||||||
|
Keyboard.releaseAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
void releaseKey(Key mappedKey) {
|
||||||
|
if (mappedKey.flags & SHIFT_HELD) {
|
||||||
|
releaseRawKey(Key_LeftShift);
|
||||||
|
}
|
||||||
|
if (mappedKey.flags & CTRL_HELD) {
|
||||||
|
releaseRawKey(Key_LeftControl);
|
||||||
|
}
|
||||||
|
if (mappedKey.flags & LALT_HELD) {
|
||||||
|
releaseRawKey(Key_LeftAlt);
|
||||||
|
}
|
||||||
|
if (mappedKey.flags & RALT_HELD) {
|
||||||
|
releaseRawKey(Key_RightAlt);
|
||||||
|
}
|
||||||
|
if (mappedKey.flags & GUI_HELD) {
|
||||||
|
releaseRawKey(Key_LeftGui);
|
||||||
|
}
|
||||||
|
releaseRawKey(mappedKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isModifierKeyActive(Key mappedKey) {
|
||||||
|
return Keyboard.isModifierActive(mappedKey.keyCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sendKeyboardReport() {
|
||||||
|
Keyboard.sendReport();
|
||||||
|
}
|
||||||
|
|
||||||
|
void initializeConsumerControl() {
|
||||||
|
ConsumerControl.begin();
|
||||||
|
}
|
||||||
|
|
||||||
|
void pressConsumerControl(Key mappedKey) {
|
||||||
|
ConsumerControl.press(mappedKey.keyCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
void releaseConsumerControl(Key mappedKey) {
|
||||||
|
ConsumerControl.release(mappedKey.keyCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void initializeSystemControl() {
|
||||||
|
SystemControl.begin();
|
||||||
|
}
|
||||||
|
|
||||||
|
void pressSystemControl(Key mappedKey) {
|
||||||
|
SystemControl.press(mappedKey.keyCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
void releaseSystemControl(Key mappedKey) {
|
||||||
|
SystemControl.release();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Mouse events
|
||||||
|
|
||||||
|
void initializeMouse() {
|
||||||
|
Mouse.begin();
|
||||||
|
}
|
||||||
|
|
||||||
|
void moveMouse(signed char x, signed char y, signed char wheel) {
|
||||||
|
Mouse.move(x, y, wheel);
|
||||||
|
}
|
||||||
|
|
||||||
|
void clickMouseButtons(uint8_t buttons) {
|
||||||
|
Mouse.click(buttons);
|
||||||
|
}
|
||||||
|
|
||||||
|
void pressMouseButtons(uint8_t buttons) {
|
||||||
|
Mouse.press(buttons);
|
||||||
|
}
|
||||||
|
|
||||||
|
void releaseMouseButtons(uint8_t buttons) {
|
||||||
|
Mouse.release(buttons);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Absolute mouse (grapahics tablet) events */
|
||||||
|
|
||||||
|
void initializeAbsoluteMouse() {
|
||||||
|
AbsoluteMouse.begin();
|
||||||
|
}
|
||||||
|
|
||||||
|
void moveAbsoluteMouse(signed char x, signed char y, signed char wheel) {
|
||||||
|
AbsoluteMouse.move(x, y, wheel);
|
||||||
|
}
|
||||||
|
void moveAbsoluteMouseTo(uint16_t x, uint16_t y, signed char wheel) {
|
||||||
|
AbsoluteMouse.moveTo(x, y, wheel);
|
||||||
|
}
|
||||||
|
|
||||||
|
void clickAbsoluteMouseButtons(uint8_t buttons) {
|
||||||
|
AbsoluteMouse.click(buttons);
|
||||||
|
}
|
||||||
|
|
||||||
|
void pressAbsoluteMouseButtons(uint8_t buttons) {
|
||||||
|
AbsoluteMouse.press(buttons);
|
||||||
|
}
|
||||||
|
|
||||||
|
void releaseAbsoluteMouseButtons(uint8_t buttons) {
|
||||||
|
AbsoluteMouse.release(buttons);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
@ -0,0 +1,45 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <Arduino.h>
|
||||||
|
|
||||||
|
namespace kaleidoscope::hid {
|
||||||
|
|
||||||
|
// A facade on top of our HID implementation
|
||||||
|
|
||||||
|
void initializeKeyboard();
|
||||||
|
|
||||||
|
void pressKey(Key mappedKey);
|
||||||
|
void releaseKey(Key mappedKey);
|
||||||
|
void releaseAllKeys();
|
||||||
|
void pressRawKey(Key mappedKey);
|
||||||
|
void releaseRawKey(Key mappedKey);
|
||||||
|
/** Flushes any pending regular key switch events and sends them out */
|
||||||
|
void sendKeyboardReport();
|
||||||
|
|
||||||
|
boolean isModifierKeyActive(Key mappedKey);
|
||||||
|
|
||||||
|
void initializeConsumerControl();
|
||||||
|
|
||||||
|
void pressConsumerControl(Key mappedKey);
|
||||||
|
void releaseConsumerControl(Key mappedKey);
|
||||||
|
|
||||||
|
void initializeSystemControl();
|
||||||
|
|
||||||
|
void pressSystemControl(Key mappedKey);
|
||||||
|
void releaseSystemControl(Key mappedKey);
|
||||||
|
|
||||||
|
void initializeMouse();
|
||||||
|
|
||||||
|
void moveMouse(signed char x, signed char y, signed char wheel);
|
||||||
|
void clickMouseButtons(uint8_t buttons);
|
||||||
|
void pressMouseButtons(uint8_t buttons);
|
||||||
|
void releaseMouseButtons(uint8_t buttons);
|
||||||
|
|
||||||
|
void initializeAbsoluteMouse();
|
||||||
|
|
||||||
|
void moveAbsoluteMouse(signed char x, signed char y, signed char wheel);
|
||||||
|
void moveAbsoluteMouseTo(uint16_t x, uint16_t y, signed char wheel);
|
||||||
|
void clickAbsoluteMouseButtons(uint8_t buttons);
|
||||||
|
void pressAbsoluteMouseButtons(uint8_t buttons);
|
||||||
|
void releaseAbsoluteMouseButtons(uint8_t buttons);
|
||||||
|
|
||||||
|
};
|
Loading…
Reference in new issue