tobeedelafuente

keyboard.ino

Mar 30th, 2017
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.15 KB | None | 0 0
  1. #include <hidboot.h>
  2. #include <usbhub.h>
  3.  
  4. class KbdRptParser : public KeyboardReportParser {
  5.   void PrintKey(uint8_t mod, uint8_t key);
  6.  
  7.   protected:
  8.   void OnControlKeysChanged(uint8_t before, uint8_t after);
  9.  
  10.   void OnKeyDown(uint8_t mod, uint8_t key);
  11.   void OnKeyUp(uint8_t mod, uint8_t key);
  12.   void OnKeyPressed(uint8_t key);
  13. };
  14.  
  15. void KbdRptParser::PrintKey(uint8_t m, uint8_t key) {};
  16. void KbdRptParser::OnControlKeysChanged(uint8_t before, uint8_t after) {};
  17. void KbdRptParser::OnKeyUp(uint8_t mod, uint8_t key) {
  18.   if (key == 40) {
  19.     enterKeyListener();
  20.   } else if (key == 42) {
  21.     backspaceKeyListener();
  22.   }  else {
  23.     uint8_t c = OemToAscii(mod, key);
  24.     if (c)
  25.       OnKeyPressed(c);
  26.   }
  27. };
  28.  
  29. void KbdRptParser::OnKeyDown(uint8_t mod, uint8_t key) { };
  30.  
  31. void KbdRptParser::OnKeyPressed(uint8_t key) {
  32.   keyListener((char)key);
  33. };
  34.  
  35. USB Usb;
  36. HIDBoot<HID_PROTOCOL_KEYBOARD> HidKeyboard(&Usb);
  37. KbdRptParser Prs;
  38.  
  39. void setupKeyboard() {
  40.   Usb.Init();
  41.   delay( 200 );
  42.   HidKeyboard.SetReportParser(0, (HIDReportParser*)&Prs);
  43.   Serial.println("Setup Keyboard Done!");
  44. }
  45.  
  46. void runKeyboardTask() {
  47.   Usb.Task();
  48. }
Advertisement
Add Comment
Please, Sign In to add comment