blob: 6ae8992fbd9254c23e429424caf08ac2c6e1870d [file] [log] [blame]
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hdmicec.cts;
import androidx.annotation.IntDef;
import java.io.File;
public final class HdmiCecConstants {
private HdmiCecConstants() {}
public static final String PHYSICAL_ADDRESS_NAME = "cec-phy-addr";
public static final int REBOOT_TIMEOUT = 60000;
public static final int TIMEOUT_CEC_REINIT_SECONDS = 5;
public static final int TIMEOUT_SAFETY_MS = 500;
public static final int INVALID_VENDOR_ID = 0xFFFFFF;
// Standard delay to allow the DUT to react to a CEC message or ADB command
public static final int DEVICE_WAIT_TIME_SECONDS = 5;
public static final int DEVICE_WAIT_TIME_MS = 5000;
public static final int MAX_SLEEP_TIME_SECONDS = 8;
public static final int SLEEP_TIMESTEP_SECONDS = 1;
public static final int DEFAULT_PHYSICAL_ADDRESS = 0x1000;
public static final int TV_PHYSICAL_ADDRESS = 0x0000;
public static final int PHYSICAL_ADDRESS_LENGTH = 4; /* Num nibbles in CEC message */
public static final int CEC_KEYCODE_SELECT = 0x00;
public static final int CEC_KEYCODE_UP = 0x01;
public static final int CEC_KEYCODE_DOWN = 0x02;
public static final int CEC_KEYCODE_LEFT = 0x03;
public static final int CEC_KEYCODE_RIGHT = 0x04;
public static final int CEC_KEYCODE_ROOT_MENU = 0x09;
public static final int CEC_KEYCODE_SETUP_MENU = 0x0A;
public static final int CEC_KEYCODE_CONTENTS_MENU = 0x0B;
public static final int CEC_KEYCODE_BACK = 0x0D;
public static final int CEC_KEYCODE_MEDIA_TOP_MENU = 0x10;
public static final int CEC_KEYCODE_MEDIA_CONTEXT_SENSITIVE_MENU = 0x11;
public static final int CEC_KEYCODE_NUMBER_0_OR_NUMBER_10 = 0x20;
public static final int CEC_KEYCODE_NUMBERS_1 = 0x21;
public static final int CEC_KEYCODE_NUMBERS_2 = 0x22;
public static final int CEC_KEYCODE_NUMBERS_3 = 0x23;
public static final int CEC_KEYCODE_NUMBERS_4 = 0x24;
public static final int CEC_KEYCODE_NUMBERS_5 = 0x25;
public static final int CEC_KEYCODE_NUMBERS_6 = 0x26;
public static final int CEC_KEYCODE_NUMBERS_7 = 0x27;
public static final int CEC_KEYCODE_NUMBERS_8 = 0x28;
public static final int CEC_KEYCODE_NUMBERS_9 = 0x29;
public static final int CEC_KEYCODE_CHANNEL_UP = 0x30;
public static final int CEC_KEYCODE_CHANNEL_DOWN = 0x31;
public static final int CEC_KEYCODE_PREVIOUS_CHANNEL = 0x32;
public static final int CEC_KEYCODE_DISPLAY_INFORMATION = 0x35;
public static final int CEC_KEYCODE_POWER = 0x40;
public static final int CEC_KEYCODE_VOLUME_UP = 0x41;
public static final int CEC_KEYCODE_VOLUME_DOWN = 0x42;
public static final int CEC_KEYCODE_MUTE = 0x43;
public static final int CEC_KEYCODE_PLAY = 0x44;
public static final int CEC_KEYCODE_STOP = 0x45;
public static final int CEC_KEYCODE_PAUSE = 0x46;
public static final int CEC_KEYCODE_RECORD = 0x47;
public static final int CEC_KEYCODE_REWIND = 0x48;
public static final int CEC_KEYCODE_FAST_FORWARD = 0x49;
public static final int CEC_KEYCODE_EJECT = 0x4A;
public static final int CEC_KEYCODE_FORWARD = 0x4B;
public static final int CEC_KEYCODE_BACKWARD = 0x4C;
public static final int CEC_KEYCODE_POWER_TOGGLE_FUNCTION = 0x6B;
public static final int CEC_KEYCODE_POWER_OFF_FUNCTION = 0x6C;
public static final int CEC_KEYCODE_POWER_ON_FUNCTION = 0x6D;
public static final int CEC_KEYCODE_F1_BLUE = 0x71;
public static final int CEC_KEYCODE_F2_RED = 0x72;
public static final int CEC_KEYCODE_F3_GREEN = 0x73;
public static final int CEC_KEYCODE_F4_YELLOW = 0x74;
public static final int CEC_KEYCODE_DATA = 0x76;
public static final int UNRECOGNIZED_OPCODE = 0x0;
@IntDef(
value = {
CEC_DEVICE_TYPE_UNKNOWN,
CEC_DEVICE_TYPE_TV,
CEC_DEVICE_TYPE_RECORDER,
CEC_DEVICE_TYPE_RESERVED,
CEC_DEVICE_TYPE_TUNER,
CEC_DEVICE_TYPE_PLAYBACK_DEVICE,
CEC_DEVICE_TYPE_AUDIO_SYSTEM,
CEC_DEVICE_TYPE_SWITCH
})
public @interface CecDeviceType {}
public static final int CEC_DEVICE_TYPE_UNKNOWN = -1;
public static final int CEC_DEVICE_TYPE_TV = 0;
public static final int CEC_DEVICE_TYPE_RECORDER = 1;
public static final int CEC_DEVICE_TYPE_RESERVED = 2;
public static final int CEC_DEVICE_TYPE_TUNER = 3;
public static final int CEC_DEVICE_TYPE_PLAYBACK_DEVICE = 4;
public static final int CEC_DEVICE_TYPE_AUDIO_SYSTEM = 5;
public static final int CEC_DEVICE_TYPE_SWITCH = 6;
public static final int CEC_DEVICE_TYPE_VIDEO_PROCESSOR = 7;
/** Feature Abort Reasons */
public static final int ABORT_UNRECOGNIZED_MODE = 0;
public static final int ABORT_NOT_IN_CORRECT_MODE = 1;
public static final int ABORT_CANNOT_PROVIDE_SOURCE = 2;
public static final int ABORT_INVALID_OPERAND = 3;
public static final int ABORT_REFUSED = 4;
public static final int ABORT_UNABLE_TO_DETERMINE = 5;
// CEC versions
public static final int CEC_VERSION_1_4 = 0x05;
public static final int CEC_VERSION_2_0 = 0x06;
/** CEC Power Status */
public static final int CEC_POWER_STATUS_ON = 0x0;
public static final int CEC_POWER_STATUS_STANDBY = 0x1;
public static final int CEC_POWER_STATUS_IN_TRANSITION_TO_ON = 0x2;
public static final int CEC_POWER_STATUS_IN_TRANSITION_TO_STANDBY = 0x3;
/** PowerManager wakefulness states */
public static final String WAKEFULNESS_AWAKE = "Awake";
public static final String WAKEFULNESS_ASLEEP = "Asleep";
/** Poll Message Success */
public static final String POLL_SUCCESS = "POLL message sent";
// CEC Device feature list
public static final String HDMI_CEC_FEATURE = "feature:android.hardware.hdmi.cec";
public static final String LEANBACK_FEATURE = "feature:android.software.leanback";
// CEC Device property list
public static final String HDMI_DEVICE_TYPE_PROPERTY = "ro.hdmi.device_type";
public static final String PROPERTY_ARC_SUPPORT = "persist.sys.hdmi.property_arc_support";
/*
* The default name of local directory into which the port to device mapping files are stored.
*/
public static final File CEC_MAP_FOLDER =
new File(System.getProperty("java.io.tmpdir"), "cec-cts-temp");
// CEC Settings
public static final String SETTING_VOLUME_CONTROL_ENABLED = "volume_control_enabled";
// CEC Settings Values
public static final String VOLUME_CONTROL_ENABLED = "1";
// Power Control Modes for source devices
public static final String POWER_CONTROL_MODE_BROADCAST = "broadcast";
public static final String POWER_CONTROL_MODE_NONE = "none";
public static final String POWER_CONTROL_MODE_TV = "to_tv";
// Power State Change on Active Source Lost Settings values
public static final String POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_NONE = "none";
public static final String POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW = "standby_now";
// CEC 2.0 Report Feature Bits
public static final int FEATURES_SINK_SUPPORTS_ARC_TX_BIT = 0x4;
public static final int FEATURES_SINK_SUPPORTS_ARC_RX_BIT = 0x2;
}