Skip to content

Commit

Permalink
Merge pull request #18 from eelmasllari/master
Browse files Browse the repository at this point in the history
added functionality to send keypresses, i.e. a press without release
  • Loading branch information
Erik Tylek Kettenburg committed Feb 13, 2016
2 parents af7c58d + 6844d32 commit 2c40bcd
Showing 1 changed file with 19 additions and 15 deletions.
34 changes: 19 additions & 15 deletions digistump-avr/libraries/DigisparkKeyboard/DigiKeyboard.h
Original file line number Diff line number Diff line change
Expand Up @@ -163,14 +163,30 @@ class DigiKeyboardDevice : public Print {
}
}

//sendKeyStroke: sends a key press AND release
void sendKeyStroke(byte keyStroke) {
sendKeyStroke(keyStroke, 0);
}

//sendKeyStroke: sends a key press AND release with modifiers
void sendKeyStroke(byte keyStroke, byte modifiers) {
sendKeyPress(keyStroke, modifiers);
// This stops endlessly repeating keystrokes:
sendKeyPress(0,0);
}

//sendKeyPress: sends a key press only - no release
//to release the key, send again with keyPress=0
void sendKeyPress(byte keyPress) {
sendKeyPress(keyPress, 0);
}

//sendKeyPress: sends a key press only, with modifiers - no release
//to release the key, send again with keyPress=0
void sendKeyPress(byte keyPress, byte modifiers) {
while (!usbInterruptIsReady()) {
// Note: We wait until we can send keystroke
// so we know the previous keystroke was
// Note: We wait until we can send keyPress
// so we know the previous keyPress was
// sent.
usbPoll();
_delay_ms(5);
Expand All @@ -179,20 +195,8 @@ class DigiKeyboardDevice : public Print {
memset(reportBuffer, 0, sizeof(reportBuffer));

reportBuffer[0] = modifiers;
reportBuffer[1] = keyStroke;
reportBuffer[1] = keyPress;

usbSetInterrupt(reportBuffer, sizeof(reportBuffer));

while (!usbInterruptIsReady()) {
// Note: We wait until we can send keystroke
// so we know the previous keystroke was
// sent.
usbPoll();
_delay_ms(5);
}

// This stops endlessly repeating keystrokes:
memset(reportBuffer, 0, sizeof(reportBuffer));
usbSetInterrupt(reportBuffer, sizeof(reportBuffer));
}

Expand Down

0 comments on commit 2c40bcd

Please sign in to comment.