Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d65c5bc7 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "CEC: Add <User Control Pressed> information in dumpsys." am: 6933315f am: c2924840

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1708336

Change-Id: Iea7599e29535195459bb6af1880f25078780e547
parents 81742334 c2924840
Loading
Loading
Loading
Loading
+109 −0
Original line number Diff line number Diff line
@@ -481,4 +481,113 @@ final class HdmiCecKeycode {
        // return muting ? CEC_KEYCODE_MUTE_FUNCTION : CEC_KEYCODE_RESTORE_VOLUME_FUNCTION;
        return CEC_KEYCODE_MUTE;
    }

    public static String getKeycodeType(byte keycode) {
        switch (keycode) {
            case CEC_KEYCODE_UP:
            case CEC_KEYCODE_DOWN:
            case CEC_KEYCODE_LEFT:
            case CEC_KEYCODE_RIGHT:
            case CEC_KEYCODE_RIGHT_UP:
            case CEC_KEYCODE_RIGHT_DOWN:
            case CEC_KEYCODE_LEFT_UP:
            case CEC_KEYCODE_LEFT_DOWN:
            case CEC_KEYCODE_PAGE_UP:
            case CEC_KEYCODE_PAGE_DOWN:
            case CEC_KEYCODE_EXIT:
                return "Navigation";
            case CEC_KEYCODE_ROOT_MENU:
            case CEC_KEYCODE_SETUP_MENU:
            case CEC_KEYCODE_CONTENTS_MENU:
            case CEC_KEYCODE_FAVORITE_MENU:
            case CEC_KEYCODE_MEDIA_TOP_MENU:
            case CEC_KEYCODE_MEDIA_CONTEXT_SENSITIVE_MENU:
                return "Menu";
            case CEC_KEYCODE_VOLUME_UP:
                return "Volume up";
            case CEC_KEYCODE_VOLUME_DOWN:
                return "Volume down";
            case CEC_KEYCODE_MUTE:
                return "Volume mute";
            case CEC_KEYCODE_POWER:
                return "Power";
            case CEC_KEYCODE_POWER_TOGGLE_FUNCTION:
                return "Power toggle";
            case CEC_KEYCODE_POWER_OFF_FUNCTION:
                return "Power off";
            case CEC_KEYCODE_POWER_ON_FUNCTION:
                return "Power on";
            case CEC_KEYCODE_F1_BLUE:
            case CEC_KEYCODE_F2_RED:
            case CEC_KEYCODE_F3_GREEN:
            case CEC_KEYCODE_F4_YELLOW:
            case CEC_KEYCODE_F5:
                return "Function key";
            case CEC_KEYCODE_NEXT_FAVORITE:
            case CEC_KEYCODE_CHANNEL_UP:
            case CEC_KEYCODE_CHANNEL_DOWN:
            case CEC_KEYCODE_PREVIOUS_CHANNEL:
                return "Channel";
            case CEC_KEYCODE_NUMBER_11:
            case CEC_KEYCODE_NUMBER_12:
            case CEC_KEYCODE_NUMBER_0_OR_NUMBER_10:
            case CEC_KEYCODE_NUMBERS_1:
            case CEC_KEYCODE_NUMBERS_2:
            case CEC_KEYCODE_NUMBERS_3:
            case CEC_KEYCODE_NUMBERS_4:
            case CEC_KEYCODE_NUMBERS_5:
            case CEC_KEYCODE_NUMBERS_6:
            case CEC_KEYCODE_NUMBERS_7:
            case CEC_KEYCODE_NUMBERS_8:
            case CEC_KEYCODE_NUMBERS_9:
                return "Number";
            case CEC_KEYCODE_PLAY:
            case CEC_KEYCODE_STOP:
            case CEC_KEYCODE_PAUSE:
            case CEC_KEYCODE_RECORD:
            case CEC_KEYCODE_REWIND:
            case CEC_KEYCODE_FAST_FORWARD:
            case CEC_KEYCODE_EJECT:
            case CEC_KEYCODE_FORWARD:
            case CEC_KEYCODE_BACKWARD:
            case CEC_KEYCODE_STOP_RECORD:
            case CEC_KEYCODE_PAUSE_RECORD:
            case CEC_KEYCODE_ANGLE:
            case CEC_KEYCODE_SUB_PICTURE:
            case CEC_KEYCODE_VIDEO_ON_DEMAND:
                return "Media";
            case CEC_KEYCODE_PLAY_FUNCTION:
            case CEC_KEYCODE_PAUSE_PLAY_FUNCTION:
            case CEC_KEYCODE_RECORD_FUNCTION:
            case CEC_KEYCODE_PAUSE_RECORD_FUNCTION:
            case CEC_KEYCODE_STOP_FUNCTION:
            case CEC_KEYCODE_MUTE_FUNCTION:
            case CEC_KEYCODE_RESTORE_VOLUME_FUNCTION:
            case CEC_KEYCODE_TUNE_FUNCTION:
            case CEC_KEYCODE_SELECT_MEDIA_FUNCTION:
            case CEC_KEYCODE_SELECT_AV_INPUT_FUNCTION:
            case CEC_KEYCODE_SELECT_AUDIO_INPUT_FUNCTION:
                return "Functional";
            case CEC_KEYCODE_ELECTRONIC_PROGRAM_GUIDE:
            case CEC_KEYCODE_TIMER_PROGRAMMING:
                return "Timer";
            case CEC_KEYCODE_SOUND_SELECT:
            case CEC_KEYCODE_SELECT_SOUND_PRESENTATION:
            case CEC_KEYCODE_SELECT_BROADCAST_TYPE:
            case CEC_KEYCODE_INPUT_SELECT:
            case CEC_KEYCODE_SELECT:
                return "Select";
            case CEC_KEYCODE_NUMBER_ENTRY_MODE:
            case CEC_KEYCODE_DOT:
            case CEC_KEYCODE_CLEAR:
            case CEC_KEYCODE_ENTER:
            case CEC_KEYCODE_DISPLAY_INFORMATION:
            case CEC_KEYCODE_HELP:
            case CEC_KEYCODE_DATA:
            case CEC_KEYCODE_INITIAL_CONFIGURATION:
                return "General";
            default:
                return "Unknown";
        }
    }
}
+8 −1
Original line number Diff line number Diff line
@@ -119,6 +119,10 @@ public final class HdmiCecMessage {
        if (mParams.length > 0) {
            if (filterMessageParameters(mOpcode)) {
                s.append(String.format(" <Redacted len=%d>", mParams.length));
            } else if (isUserControlPressedMessage(mOpcode)) {
                s.append(
                        String.format(
                                " <Keycode type = %s>", HdmiCecKeycode.getKeycodeType(mParams[0])));
            } else {
                for (byte data : mParams) {
                    s.append(String.format(":%02X", data));
@@ -287,7 +291,6 @@ public final class HdmiCecMessage {

    private static boolean filterMessageParameters(int opcode) {
        switch (opcode) {
            case Constants.MESSAGE_USER_CONTROL_PRESSED:
            case Constants.MESSAGE_USER_CONTROL_RELEASED:
            case Constants.MESSAGE_SET_OSD_NAME:
            case Constants.MESSAGE_SET_OSD_STRING:
@@ -300,5 +303,9 @@ public final class HdmiCecMessage {
                return false;
        }
    }

    private static boolean isUserControlPressedMessage(int opcode) {
        return Constants.MESSAGE_USER_CONTROL_PRESSED == opcode;
    }
}