1 /* 2 * Copyright (C) 2018 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.bluetooth.avrcp; 18 19 import android.bluetooth.BluetoothAvrcp; 20 import android.view.KeyEvent; 21 22 class AvrcpPassthrough { toKeyCode(int operation)23 public static int toKeyCode(int operation) { 24 switch (operation) { 25 case BluetoothAvrcp.PASSTHROUGH_ID_UP: 26 return KeyEvent.KEYCODE_DPAD_UP; 27 case BluetoothAvrcp.PASSTHROUGH_ID_DOWN: 28 return KeyEvent.KEYCODE_DPAD_DOWN; 29 case BluetoothAvrcp.PASSTHROUGH_ID_LEFT: 30 return KeyEvent.KEYCODE_DPAD_LEFT; 31 case BluetoothAvrcp.PASSTHROUGH_ID_RIGHT: 32 return KeyEvent.KEYCODE_DPAD_RIGHT; 33 case BluetoothAvrcp.PASSTHROUGH_ID_RIGHT_UP: 34 return KeyEvent.KEYCODE_DPAD_UP_RIGHT; 35 case BluetoothAvrcp.PASSTHROUGH_ID_RIGHT_DOWN: 36 return KeyEvent.KEYCODE_DPAD_DOWN_RIGHT; 37 case BluetoothAvrcp.PASSTHROUGH_ID_LEFT_UP: 38 return KeyEvent.KEYCODE_DPAD_UP_LEFT; 39 case BluetoothAvrcp.PASSTHROUGH_ID_LEFT_DOWN: 40 return KeyEvent.KEYCODE_DPAD_DOWN_LEFT; 41 case BluetoothAvrcp.PASSTHROUGH_ID_0: 42 return KeyEvent.KEYCODE_NUMPAD_0; 43 case BluetoothAvrcp.PASSTHROUGH_ID_1: 44 return KeyEvent.KEYCODE_NUMPAD_1; 45 case BluetoothAvrcp.PASSTHROUGH_ID_2: 46 return KeyEvent.KEYCODE_NUMPAD_2; 47 case BluetoothAvrcp.PASSTHROUGH_ID_3: 48 return KeyEvent.KEYCODE_NUMPAD_3; 49 case BluetoothAvrcp.PASSTHROUGH_ID_4: 50 return KeyEvent.KEYCODE_NUMPAD_4; 51 case BluetoothAvrcp.PASSTHROUGH_ID_5: 52 return KeyEvent.KEYCODE_NUMPAD_5; 53 case BluetoothAvrcp.PASSTHROUGH_ID_6: 54 return KeyEvent.KEYCODE_NUMPAD_6; 55 case BluetoothAvrcp.PASSTHROUGH_ID_7: 56 return KeyEvent.KEYCODE_NUMPAD_7; 57 case BluetoothAvrcp.PASSTHROUGH_ID_8: 58 return KeyEvent.KEYCODE_NUMPAD_8; 59 case BluetoothAvrcp.PASSTHROUGH_ID_9: 60 return KeyEvent.KEYCODE_NUMPAD_9; 61 case BluetoothAvrcp.PASSTHROUGH_ID_DOT: 62 return KeyEvent.KEYCODE_NUMPAD_DOT; 63 case BluetoothAvrcp.PASSTHROUGH_ID_ENTER: 64 return KeyEvent.KEYCODE_NUMPAD_ENTER; 65 case BluetoothAvrcp.PASSTHROUGH_ID_CLEAR: 66 return KeyEvent.KEYCODE_CLEAR; 67 case BluetoothAvrcp.PASSTHROUGH_ID_CHAN_UP: 68 return KeyEvent.KEYCODE_CHANNEL_UP; 69 case BluetoothAvrcp.PASSTHROUGH_ID_CHAN_DOWN: 70 return KeyEvent.KEYCODE_CHANNEL_DOWN; 71 case BluetoothAvrcp.PASSTHROUGH_ID_PREV_CHAN: 72 return KeyEvent.KEYCODE_LAST_CHANNEL; 73 case BluetoothAvrcp.PASSTHROUGH_ID_INPUT_SEL: 74 return KeyEvent.KEYCODE_TV_INPUT; 75 case BluetoothAvrcp.PASSTHROUGH_ID_DISP_INFO: 76 return KeyEvent.KEYCODE_INFO; 77 case BluetoothAvrcp.PASSTHROUGH_ID_HELP: 78 return KeyEvent.KEYCODE_HELP; 79 case BluetoothAvrcp.PASSTHROUGH_ID_PAGE_UP: 80 return KeyEvent.KEYCODE_PAGE_UP; 81 case BluetoothAvrcp.PASSTHROUGH_ID_PAGE_DOWN: 82 return KeyEvent.KEYCODE_PAGE_DOWN; 83 case BluetoothAvrcp.PASSTHROUGH_ID_POWER: 84 return KeyEvent.KEYCODE_POWER; 85 case BluetoothAvrcp.PASSTHROUGH_ID_VOL_UP: 86 return KeyEvent.KEYCODE_VOLUME_UP; 87 case BluetoothAvrcp.PASSTHROUGH_ID_VOL_DOWN: 88 return KeyEvent.KEYCODE_VOLUME_DOWN; 89 case BluetoothAvrcp.PASSTHROUGH_ID_MUTE: 90 return KeyEvent.KEYCODE_MUTE; 91 case BluetoothAvrcp.PASSTHROUGH_ID_PLAY: 92 return KeyEvent.KEYCODE_MEDIA_PLAY; 93 case BluetoothAvrcp.PASSTHROUGH_ID_STOP: 94 return KeyEvent.KEYCODE_MEDIA_STOP; 95 case BluetoothAvrcp.PASSTHROUGH_ID_PAUSE: 96 return KeyEvent.KEYCODE_MEDIA_PAUSE; 97 case BluetoothAvrcp.PASSTHROUGH_ID_RECORD: 98 return KeyEvent.KEYCODE_MEDIA_RECORD; 99 case BluetoothAvrcp.PASSTHROUGH_ID_REWIND: 100 return KeyEvent.KEYCODE_MEDIA_REWIND; 101 case BluetoothAvrcp.PASSTHROUGH_ID_FAST_FOR: 102 return KeyEvent.KEYCODE_MEDIA_FAST_FORWARD; 103 case BluetoothAvrcp.PASSTHROUGH_ID_EJECT: 104 return KeyEvent.KEYCODE_MEDIA_EJECT; 105 case BluetoothAvrcp.PASSTHROUGH_ID_FORWARD: 106 return KeyEvent.KEYCODE_MEDIA_NEXT; 107 case BluetoothAvrcp.PASSTHROUGH_ID_BACKWARD: 108 return KeyEvent.KEYCODE_MEDIA_PREVIOUS; 109 case BluetoothAvrcp.PASSTHROUGH_ID_F1: 110 return KeyEvent.KEYCODE_F1; 111 case BluetoothAvrcp.PASSTHROUGH_ID_F2: 112 return KeyEvent.KEYCODE_F2; 113 case BluetoothAvrcp.PASSTHROUGH_ID_F3: 114 return KeyEvent.KEYCODE_F3; 115 case BluetoothAvrcp.PASSTHROUGH_ID_F4: 116 return KeyEvent.KEYCODE_F4; 117 case BluetoothAvrcp.PASSTHROUGH_ID_F5: 118 return KeyEvent.KEYCODE_F5; 119 // Fallthrough for all unknown key mappings 120 case BluetoothAvrcp.PASSTHROUGH_ID_SELECT: 121 case BluetoothAvrcp.PASSTHROUGH_ID_ROOT_MENU: 122 case BluetoothAvrcp.PASSTHROUGH_ID_SETUP_MENU: 123 case BluetoothAvrcp.PASSTHROUGH_ID_CONT_MENU: 124 case BluetoothAvrcp.PASSTHROUGH_ID_FAV_MENU: 125 case BluetoothAvrcp.PASSTHROUGH_ID_EXIT: 126 case BluetoothAvrcp.PASSTHROUGH_ID_SOUND_SEL: 127 case BluetoothAvrcp.PASSTHROUGH_ID_ANGLE: 128 case BluetoothAvrcp.PASSTHROUGH_ID_SUBPICT: 129 case BluetoothAvrcp.PASSTHROUGH_ID_VENDOR: 130 default: 131 return KeyEvent.KEYCODE_UNKNOWN; 132 } 133 } 134 } 135