• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2019 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 android.hdmicec.cts;
18 
19 import androidx.annotation.IntDef;
20 
21 import java.io.File;
22 
23 public final class HdmiCecConstants {
24 
HdmiCecConstants()25     private HdmiCecConstants() {}
26 
27     /** @deprecated not used anymore **/
28     @Deprecated
29     public static final String PHYSICAL_ADDRESS_NAME = "cec-phy-addr";
30     public static final int REBOOT_TIMEOUT = 60000;
31     public static final int TIMEOUT_CEC_REINIT_SECONDS = 5;
32     public static final int TIMEOUT_SAFETY_MS = 500;
33 
34     public static final int INVALID_VENDOR_ID = 0xFFFFFF;
35 
36     // Standard delay to allow the DUT to react to a CEC message or ADB command
37     public static final int DEVICE_WAIT_TIME_SECONDS = 5;
38     public static final int DEVICE_WAIT_TIME_MS = 5000;
39     public static final int MAX_SLEEP_TIME_SECONDS = 8;
40     public static final int SLEEP_TIMESTEP_SECONDS = 1;
41     public static final int SLEEP_TIME_DELAY_SECONDS = 2;
42     public static final int DEFAULT_PHYSICAL_ADDRESS = 0x1000;
43     public static final int TV_PHYSICAL_ADDRESS = 0x0000;
44     public static final int PHYSICAL_ADDRESS_LENGTH = 4; /* Num nibbles in CEC message */
45 
46     public static final int CEC_KEYCODE_SELECT = 0x00;
47     public static final int CEC_KEYCODE_UP = 0x01;
48     public static final int CEC_KEYCODE_DOWN = 0x02;
49     public static final int CEC_KEYCODE_LEFT = 0x03;
50     public static final int CEC_KEYCODE_RIGHT = 0x04;
51     public static final int CEC_KEYCODE_ROOT_MENU = 0x09;
52     public static final int CEC_KEYCODE_SETUP_MENU = 0x0A;
53     public static final int CEC_KEYCODE_CONTENTS_MENU = 0x0B;
54     public static final int CEC_KEYCODE_BACK = 0x0D;
55     public static final int CEC_KEYCODE_MEDIA_TOP_MENU = 0x10;
56     public static final int CEC_KEYCODE_MEDIA_CONTEXT_SENSITIVE_MENU = 0x11;
57     public static final int CEC_KEYCODE_NUMBER_0_OR_NUMBER_10 = 0x20;
58     public static final int CEC_KEYCODE_NUMBERS_1 = 0x21;
59     public static final int CEC_KEYCODE_NUMBERS_2 = 0x22;
60     public static final int CEC_KEYCODE_NUMBERS_3 = 0x23;
61     public static final int CEC_KEYCODE_NUMBERS_4 = 0x24;
62     public static final int CEC_KEYCODE_NUMBERS_5 = 0x25;
63     public static final int CEC_KEYCODE_NUMBERS_6 = 0x26;
64     public static final int CEC_KEYCODE_NUMBERS_7 = 0x27;
65     public static final int CEC_KEYCODE_NUMBERS_8 = 0x28;
66     public static final int CEC_KEYCODE_NUMBERS_9 = 0x29;
67     public static final int CEC_KEYCODE_CHANNEL_UP = 0x30;
68     public static final int CEC_KEYCODE_CHANNEL_DOWN = 0x31;
69     public static final int CEC_KEYCODE_PREVIOUS_CHANNEL = 0x32;
70     public static final int CEC_KEYCODE_DISPLAY_INFORMATION = 0x35;
71     public static final int CEC_KEYCODE_POWER = 0x40;
72     public static final int CEC_KEYCODE_VOLUME_UP = 0x41;
73     public static final int CEC_KEYCODE_VOLUME_DOWN = 0x42;
74     public static final int CEC_KEYCODE_MUTE = 0x43;
75     public static final int CEC_KEYCODE_PLAY = 0x44;
76     public static final int CEC_KEYCODE_STOP = 0x45;
77     public static final int CEC_KEYCODE_PAUSE = 0x46;
78     public static final int CEC_KEYCODE_RECORD = 0x47;
79     public static final int CEC_KEYCODE_REWIND = 0x48;
80     public static final int CEC_KEYCODE_FAST_FORWARD = 0x49;
81     public static final int CEC_KEYCODE_EJECT = 0x4A;
82     public static final int CEC_KEYCODE_FORWARD = 0x4B;
83     public static final int CEC_KEYCODE_BACKWARD = 0x4C;
84     public static final int CEC_KEYCODE_POWER_TOGGLE_FUNCTION = 0x6B;
85     public static final int CEC_KEYCODE_POWER_OFF_FUNCTION = 0x6C;
86     public static final int CEC_KEYCODE_POWER_ON_FUNCTION = 0x6D;
87     public static final int CEC_KEYCODE_F1_BLUE = 0x71;
88     public static final int CEC_KEYCODE_F2_RED = 0x72;
89     public static final int CEC_KEYCODE_F3_GREEN = 0x73;
90     public static final int CEC_KEYCODE_F4_YELLOW = 0x74;
91     public static final int CEC_KEYCODE_DATA = 0x76;
92 
93     public static final int UNRECOGNIZED_OPCODE = 0x0;
94 
95     @IntDef(
96             value = {
97                 CEC_DEVICE_TYPE_UNKNOWN,
98                 CEC_DEVICE_TYPE_TV,
99                 CEC_DEVICE_TYPE_RECORDER,
100                 CEC_DEVICE_TYPE_RESERVED,
101                 CEC_DEVICE_TYPE_TUNER,
102                 CEC_DEVICE_TYPE_PLAYBACK_DEVICE,
103                 CEC_DEVICE_TYPE_AUDIO_SYSTEM,
104                 CEC_DEVICE_TYPE_SWITCH
105             })
106     public @interface CecDeviceType {}
107 
108     public static final int CEC_DEVICE_TYPE_UNKNOWN = -1;
109     public static final int CEC_DEVICE_TYPE_TV = 0;
110     public static final int CEC_DEVICE_TYPE_RECORDER = 1;
111     public static final int CEC_DEVICE_TYPE_RESERVED = 2;
112     public static final int CEC_DEVICE_TYPE_TUNER = 3;
113     public static final int CEC_DEVICE_TYPE_PLAYBACK_DEVICE = 4;
114     public static final int CEC_DEVICE_TYPE_AUDIO_SYSTEM = 5;
115     public static final int CEC_DEVICE_TYPE_SWITCH = 6;
116     public static final int CEC_DEVICE_TYPE_VIDEO_PROCESSOR = 7;
117 
118     /** Feature Abort Reasons */
119     public static final int ABORT_UNRECOGNIZED_MODE = 0;
120     public static final int ABORT_NOT_IN_CORRECT_MODE = 1;
121     public static final int ABORT_CANNOT_PROVIDE_SOURCE = 2;
122     public static final int ABORT_INVALID_OPERAND = 3;
123     public static final int ABORT_REFUSED = 4;
124     public static final int ABORT_UNABLE_TO_DETERMINE = 5;
125 
126     // CEC versions
127     public static final int CEC_VERSION_1_4 = 0x05;
128     public static final int CEC_VERSION_2_0 = 0x06;
129 
130     /** CEC Power Status */
131     public static final int CEC_POWER_STATUS_ON = 0x0;
132     public static final int CEC_POWER_STATUS_STANDBY = 0x1;
133     public static final int CEC_POWER_STATUS_IN_TRANSITION_TO_ON = 0x2;
134     public static final int CEC_POWER_STATUS_IN_TRANSITION_TO_STANDBY = 0x3;
135 
136     /** PowerManager wakefulness states */
137     public static final String WAKEFULNESS_AWAKE = "Awake";
138     public static final String WAKEFULNESS_ASLEEP = "Asleep";
139 
140     /** Poll Message Success */
141     public static final String POLL_SUCCESS = "POLL message sent";
142 
143     // CEC Device feature list
144     public static final String HDMI_CEC_FEATURE = "feature:android.hardware.hdmi.cec";
145     public static final String LEANBACK_FEATURE = "feature:android.software.leanback";
146 
147     // CEC Device property list
148     public static final String HDMI_DEVICE_TYPE_PROPERTY = "ro.hdmi.device_type";
149     public static final String PROPERTY_ARC_SUPPORT = "persist.sys.hdmi.property_arc_support";
150 
151     /*
152      * The default name of local directory into which the port to device mapping files are stored.
153      */
154     public static final File CEC_MAP_FOLDER =
155             new File(System.getProperty("java.io.tmpdir"), "cec-cts-temp");
156 
157     // CEC Settings
158     public static final String SETTING_VOLUME_CONTROL_ENABLED = "volume_control_enabled";
159     public static final String SETTING_SOUNDBAR_MODE_ENABLED = "soundbar_mode";
160 
161     // CEC Settings Values
162     public static final String VOLUME_CONTROL_ENABLED = "1";
163     public static final String VOLUME_CONTROL_DISABLED = "0";
164     public static final String SOUNDBAR_MODE_ENABLED = "1";
165     public static final String SOUNDBAR_MODE_DISABLED = "0";
166     // Power Control Modes for source devices
167     public static final String POWER_CONTROL_MODE_BROADCAST = "broadcast";
168     public static final String POWER_CONTROL_MODE_NONE = "none";
169     public static final String POWER_CONTROL_MODE_TV = "to_tv";
170     public static final String POWER_CONTROL_MODE_TV_AND_AUDIO_SYSTEM = "to_tv_and_audio_system";
171 
172     // Power State Change on Active Source Lost Settings values
173     public static final String POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_NONE = "none";
174     public static final String POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW = "standby_now";
175 
176     // Short Audio Descriptors that can be queried
177     public static final String QUERY_SAD_LPCM = "query_sad_lpcm";
178     public static final String QUERY_SAD_DD = "query_sad_dd";
179     public static final String QUERY_SAD_MPEG1 = "query_sad_mpeg1";
180     public static final String QUERY_SAD_MP3 = "query_sad_mp3";
181     public static final String QUERY_SAD_MPEG2 = "query_sad_mpeg2";
182     public static final String QUERY_SAD_AAC = "query_sad_aac";
183     public static final String QUERY_SAD_DTS = "query_sad_dts";
184     public static final String QUERY_SAD_ATRAC = "query_sad_atrac";
185     public static final String QUERY_SAD_ONEBITAUDIO = "query_sad_onebitaudio";
186     public static final String QUERY_SAD_DDP = "query_sad_ddp";
187     public static final String QUERY_SAD_DTSHD = "query_sad_dtshd";
188     public static final String QUERY_SAD_TRUEHD = "query_sad_truehd";
189     public static final String QUERY_SAD_DST = "query_sad_dst";
190     public static final String QUERY_SAD_WMAPRO = "query_sad_wmapro";
191     public static final String QUERY_SAD_MAX = "query_sad_max";
192 
193     // Whether to query an SAD or not
194     public static final String QUERY_SAD_DISABLED = "0";
195     public static final String QUERY_SAD_ENABLED = "1";
196 
197     // Audio codecs
198     public static final int AUDIO_CODEC_NONE = 0x0;
199     public static final int AUDIO_CODEC_LPCM = 0x1; // Support LPCMs
200     public static final int AUDIO_CODEC_DD = 0x2; // Support DD
201     public static final int AUDIO_CODEC_MPEG1 = 0x3; // Support MPEG1
202     public static final int AUDIO_CODEC_MP3 = 0x4; // Support MP3
203     public static final int AUDIO_CODEC_MPEG2 = 0x5; // Support MPEG2
204     public static final int AUDIO_CODEC_AAC = 0x6; // Support AAC
205     public static final int AUDIO_CODEC_DTS = 0x7; // Support DTS
206     public static final int AUDIO_CODEC_ATRAC = 0x8; // Support ATRAC
207     public static final int AUDIO_CODEC_ONEBITAUDIO = 0x9; // Support One-Bit Audio
208     public static final int AUDIO_CODEC_DDP = 0xA; // Support DDP
209     public static final int AUDIO_CODEC_DTSHD = 0xB; // Support DTSHD
210     public static final int AUDIO_CODEC_TRUEHD = 0xC; // Support MLP/TRUE-HD
211     public static final int AUDIO_CODEC_DST = 0xD; // Support DST
212     public static final int AUDIO_CODEC_WMAPRO = 0xE; // Support WMA-Pro
213     public static final int AUDIO_CODEC_MAX = 0xF;
214 
215     // CEC 2.0 Report Feature Bits
216     public static final int FEATURES_SINK_SUPPORTS_ARC_TX_BIT = 0x4;
217     public static final int FEATURES_SINK_SUPPORTS_ARC_RX_BIT = 0x2;
218 
219     // Audio device types from AudioDeviceInfo
220     public static final int DEVICE_OUT_HDMI = 0x400;
221     public static final int DEVICE_OUT_HDMI_ARC = 0x40000;
222     public static final int DEVICE_OUT_HDMI_EARC = 0x40001;
223 
224     // Volume behavior constants from AudioManager
225     public static final int DEVICE_VOLUME_BEHAVIOR_VARIABLE = 0;
226     public static final int DEVICE_VOLUME_BEHAVIOR_FULL = 1;
227     public static final int DEVICE_VOLUME_BEHAVIOR_FIXED = 2;
228     public static final int DEVICE_VOLUME_BEHAVIOR_ABSOLUTE = 3;
229 }
230