Files
skogaby_OpeNITHM/Firmware/USBOutput.cpp
T
veroxzik 98e7b907d9 Fixes (again)
It didn't build but now it does
Fixed the USB def for switching between 32U4/328P
Fixes indents on all files
2019-06-24 20:44:07 -04:00

53 lines
1.1 KiB
C++

#include "PinConfig.h"
#ifdef USB
#include "USBOutput.h"
char bottomRow[] = {'a', 'z', 's', 'x', 'd', 'c', 'f', 'v', 'g', 'b', 'h', 'n', 'j', 'm', 'k', ','};
char topRow[] = {'1', 'q', '2', 'w', '3', 'e', '4', 'r', '5', 't', '6', 'y', '7', 'u', '8', 'i'};
void USBOutput::sendKeyEvent(int key, bool pressed, bool doublePressed)
{
if (pressed) {
if (doublePressed) {
NKROKeyboard.write(topRow[key]);
}
else {
NKROKeyboard.press(bottomRow[key]);
}
}
else {
NKROKeyboard.release(bottomRow[key]);
}
}
void USBOutput::sendSensorEvent(float position)
{
// Send hand up / hand down key
if (position > lastPosition) {
NKROKeyboard.write(KEY_PAGE_UP);
}
if (position < lastPosition) {
NKROKeyboard.write(KEY_PAGE_DOWN);
}
// Send hand seen / unseen key
if (position > 0.05f) {
NKROKeyboard.press(KEY_HOME);
}
else {
NKROKeyboard.release(KEY_HOME);
}
// Send hand moved key
NKROKeyboard.write(KEY_END);
}
USBOutput::USBOutput() {
NKROKeyboard.begin();
lastPosition = 0;
}
#endif