mirror of
https://github.com/skogaby/OpeNITHM.git
synced 2026-09-22 22:58:16 +03:00
52 lines
1.0 KiB
C++
52 lines
1.0 KiB
C++
#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
|