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; } }