|
@@ -0,0 +1,508 @@
|
|
|
+void printKey() {
|
|
|
+ if (useSerial) {
|
|
|
+ Serial.print(F("KEY_"));
|
|
|
+ }
|
|
|
+}
|
|
|
+void printMedia() {
|
|
|
+ if (useSerial) {
|
|
|
+ Serial.print(F("MEDIA_"));
|
|
|
+ }
|
|
|
+}
|
|
|
+void printArrow() {
|
|
|
+ if (useSerial) {
|
|
|
+ Serial.print(F("ARROW_"));
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+void sendKey(uint8_t _key) {
|
|
|
+ if(debug) Serial.println(F("SENDING KEY"));
|
|
|
+ switch (_key) {
|
|
|
+ // case BTN_POWER:
|
|
|
+ // //handlePowerButton();
|
|
|
+ // if (useSerial) {
|
|
|
+ // printKey();
|
|
|
+ // Serial.println(F("POWER"));
|
|
|
+ // }
|
|
|
+ // break;
|
|
|
+ case BTN_OK_ENTER:
|
|
|
+ if (sendHID) BootKeyboard.write(KEY_ENTER);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("OK_ENTER"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_UP:
|
|
|
+ if (sendHID) BootKeyboard.write(KEY_UP_ARROW);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("UP"));
|
|
|
+ }
|
|
|
+ handleTaskSwitchButton_extendAltTabTimeout();
|
|
|
+ break;
|
|
|
+ case BTN_DOWN:
|
|
|
+ if (sendHID) BootKeyboard.write(KEY_DOWN_ARROW);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("DOWN"));
|
|
|
+ }
|
|
|
+ handleTaskSwitchButton_extendAltTabTimeout();
|
|
|
+ break;
|
|
|
+ case BTN_RIGHT:
|
|
|
+ if (sendHID) BootKeyboard.write(KEY_RIGHT_ARROW);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("RIGHT"));
|
|
|
+ }
|
|
|
+ handleTaskSwitchButton_extendAltTabTimeout();
|
|
|
+ break;
|
|
|
+ case BTN_LEFT:
|
|
|
+ if (sendHID) BootKeyboard.write(KEY_LEFT_ARROW);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("LEFT"));
|
|
|
+ }
|
|
|
+ handleTaskSwitchButton_extendAltTabTimeout();
|
|
|
+ break;
|
|
|
+ case BTN_PLAY:
|
|
|
+ if (sendHID) Consumer.write(MEDIA_PLAY_PAUSE);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ printMedia();
|
|
|
+ Serial.println(F("PLAY"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_PAUSE:
|
|
|
+ if (sendHID) Consumer.write(MEDIA_PLAY_PAUSE);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ printMedia();
|
|
|
+ Serial.println(F("PAUSE"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_STOP:
|
|
|
+ if (sendHID) Consumer.write(MEDIA_STOP);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ printMedia();
|
|
|
+ Serial.println(F("STOP"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_REC:
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("REC"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_REWD:
|
|
|
+ if (sendHID) Consumer.write(MEDIA_REWIND);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ printMedia();
|
|
|
+ Serial.println(F("REWD"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_FFWD:
|
|
|
+ if (sendHID) Consumer.write(MEDIA_FAST_FORWARD);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ printMedia();
|
|
|
+ Serial.println(F("FFWD"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_PREV:
|
|
|
+ if (sendHID) Consumer.write(MEDIA_PREVIOUS);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ printMedia();
|
|
|
+ Serial.println(F("PREV"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_NEXT:
|
|
|
+ if (sendHID) Consumer.write(MEDIA_NEXT);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ printMedia();
|
|
|
+ Serial.println(F("NEXT"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_BACK:
|
|
|
+ if (sendHID) BootKeyboard.write(KEY_BACKSPACE);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("BACK"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_MENU:
|
|
|
+ if (sendHID) BootKeyboard.write(KEY_ESC);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("MENU"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_HOME:
|
|
|
+ if (sendHID) BootKeyboard.write(KEY_LEFT_WINDOWS);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("HOME"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_RED:
|
|
|
+ if (sendHID) {
|
|
|
+ BootKeyboard.press(KEY_LEFT_CTRL);
|
|
|
+ BootKeyboard.press(KEY_LEFT_ALT);
|
|
|
+ BootKeyboard.press(KEY_LEFT_WINDOWS);
|
|
|
+ BootKeyboard.press(KEY_F7);
|
|
|
+ delay(50);
|
|
|
+ BootKeyboard.releaseAll();
|
|
|
+ }
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("RED"));
|
|
|
+ Serial.println("sending CTRL+ALT+WIN+F7");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_GREEN:
|
|
|
+ if (sendHID) {
|
|
|
+ BootKeyboard.press(KEY_LEFT_CTRL);
|
|
|
+ BootKeyboard.press(KEY_LEFT_ALT);
|
|
|
+ BootKeyboard.press(KEY_LEFT_WINDOWS);
|
|
|
+ BootKeyboard.press(KEY_F8);
|
|
|
+ delay(50);
|
|
|
+ BootKeyboard.releaseAll();
|
|
|
+ }
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("GREEN"));
|
|
|
+ Serial.println(F("sending CTRL+ALT+WIN+F8"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_YELLOW:
|
|
|
+ if (sendHID) {
|
|
|
+ BootKeyboard.press(KEY_LEFT_CTRL);
|
|
|
+ BootKeyboard.press(KEY_LEFT_ALT);
|
|
|
+ BootKeyboard.press(KEY_LEFT_WINDOWS);
|
|
|
+ BootKeyboard.press(KEY_F9);
|
|
|
+ delay(50);
|
|
|
+ BootKeyboard.releaseAll();
|
|
|
+ }
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("YELLOW"));
|
|
|
+ Serial.println(F("sending CTRL+ALT+WIN+F9"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_BLUE:
|
|
|
+ if (sendHID) {
|
|
|
+ BootKeyboard.press(KEY_LEFT_CTRL);
|
|
|
+ BootKeyboard.press(KEY_LEFT_ALT);
|
|
|
+ BootKeyboard.press(KEY_LEFT_WINDOWS);
|
|
|
+ BootKeyboard.press(KEY_F10);
|
|
|
+ delay(50);
|
|
|
+ BootKeyboard.releaseAll();
|
|
|
+ }
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("BLUE"));
|
|
|
+ Serial.println("sending CTRL+ALT+WIN+F10");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_STATUS:
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("STATUS"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_RETURN:
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("RETURN"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_SETUP:
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("SETUP"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_GUIDE:
|
|
|
+ if (sendHID) {
|
|
|
+ BootKeyboard.press(KEY_LEFT_CTRL);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_LEFT_ALT);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_LEFT_WINDOWS);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_F5);
|
|
|
+ delay(20);
|
|
|
+ BootKeyboard.releaseAll();
|
|
|
+ }
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("GUIDE"));
|
|
|
+ Serial.println(F("sending CTRL+ALT+WIN+F5"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_RADIO:
|
|
|
+ if (sendHID) {
|
|
|
+ BootKeyboard.press(KEY_LEFT_CTRL);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_LEFT_ALT);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_LEFT_WINDOWS);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_F6);
|
|
|
+ delay(20);
|
|
|
+ BootKeyboard.releaseAll();
|
|
|
+ }
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("RADIO"));
|
|
|
+ Serial.println(F("sending CTRL+ALT+WIN+F6"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_PREVCH:
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("PREVCH"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_CONTEXT:
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("CONTEXT"));
|
|
|
+ }
|
|
|
+ BootKeyboard.write(KEY_C);
|
|
|
+ break;
|
|
|
+ case BTN_INFO:
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("INFO"));
|
|
|
+ }
|
|
|
+ BootKeyboard.write(KEY_I);
|
|
|
+ break;
|
|
|
+ case BTN_CH_DOWN:
|
|
|
+ if (sendHID) {
|
|
|
+ BootKeyboard.write(KEY_PAGE_DOWN);
|
|
|
+ //BootKeyboard.releaseAll();
|
|
|
+ }
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("CH_DOWN"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_CH_UP:
|
|
|
+ if (sendHID) {
|
|
|
+ BootKeyboard.write(KEY_PAGE_UP);
|
|
|
+ //BootKeyboard.releaseAll();
|
|
|
+ }
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("CH_UP"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_PAGE_DOWN:
|
|
|
+ if (sendHID) {
|
|
|
+ BootKeyboard.write(KEY_PAGE_DOWN);
|
|
|
+ //BootKeyboard.releaseAll();
|
|
|
+ }
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("PAGE_DOWN"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_PAGE_UP:
|
|
|
+ if (sendHID) {
|
|
|
+ BootKeyboard.write(KEY_PAGE_UP);
|
|
|
+ //BootKeyboard.releaseAll();
|
|
|
+ }
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("PAGE_UP"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_VOL_DOWN:
|
|
|
+ if (sendHID) Consumer.write(MEDIA_VOLUME_DOWN);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ printMedia();
|
|
|
+ Serial.println(F("VOLUME_DOWN"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_VOL_UP:
|
|
|
+ if (sendHID) Consumer.write(MEDIA_VOLUME_UP);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ printMedia();
|
|
|
+ Serial.println(F("VOLUME_UP"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_MUTE:
|
|
|
+ if (sendHID) Consumer.write(MEDIA_VOLUME_MUTE);
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ printMedia();
|
|
|
+ Serial.println(F("VOLUME_MUTE"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_TV:
|
|
|
+ if (sendHID) {
|
|
|
+ BootKeyboard.press(KEY_LEFT_CTRL);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_LEFT_WINDOWS);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_LEFT_ALT);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_F1);
|
|
|
+ delay(20);
|
|
|
+ BootKeyboard.releaseAll();
|
|
|
+ }
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("TV"));
|
|
|
+ Serial.println(F("sending CTRL+ALT+WIN+F1"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_VIDEOS:
|
|
|
+ if (sendHID) {
|
|
|
+ BootKeyboard.press(KEY_LEFT_CTRL);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_LEFT_ALT);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_LEFT_WINDOWS);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_F2);
|
|
|
+ delay(20);
|
|
|
+ BootKeyboard.releaseAll();
|
|
|
+ }
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("VIDEOS"));
|
|
|
+ Serial.println(F("sending CTRL+ALT+WIN+F2"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_MUSIC:
|
|
|
+ if (sendHID) {
|
|
|
+ BootKeyboard.press(KEY_LEFT_CTRL);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_LEFT_ALT);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_LEFT_WINDOWS);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_F3);
|
|
|
+ delay(20);
|
|
|
+ BootKeyboard.releaseAll();
|
|
|
+ }
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("MUSIC"));
|
|
|
+ Serial.println(F("sending CTRL+ALT+WIN+F3"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_PICTURES:
|
|
|
+ if (sendHID) {
|
|
|
+ BootKeyboard.press(KEY_LEFT_CTRL);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_LEFT_WINDOWS);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_LEFT_ALT);
|
|
|
+ delay(2);
|
|
|
+ BootKeyboard.press(KEY_F4);
|
|
|
+ delay(20);
|
|
|
+ BootKeyboard.releaseAll();
|
|
|
+ }
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("PICTURES"));
|
|
|
+ Serial.println(F("sending CTRL+ALT+WIN+F4"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_STAR:
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("STAR"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_HASH:
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println(F("HASH"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case BTN_0:
|
|
|
+ if (sendHID) BootKeyboard.write('0');
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println("0");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_1:
|
|
|
+ if (sendHID) BootKeyboard.write('1');
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println("1");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_2:
|
|
|
+ if (sendHID) BootKeyboard.write('2');
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println("2");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_3:
|
|
|
+ if (sendHID) BootKeyboard.write('3');
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println("3");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_4:
|
|
|
+ if (sendHID) BootKeyboard.write('4');
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println("4");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_5:
|
|
|
+ if (sendHID) BootKeyboard.write('5');
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println("5");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_6:
|
|
|
+ if (sendHID) BootKeyboard.write('6');
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println("6");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_7:
|
|
|
+ if (sendHID) BootKeyboard.write('7');
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println("7");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_8:
|
|
|
+ if (sendHID) BootKeyboard.write('8');
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println("8");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BTN_9:
|
|
|
+ if (sendHID) BootKeyboard.write('9');
|
|
|
+ if (useSerial) {
|
|
|
+ printKey();
|
|
|
+ Serial.println("9");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+}
|