Merge "Make list of SADs to query configurable"
This commit is contained in:
committed by
Android (Google) Code Review
commit
21223c9bb8
@@ -3355,6 +3355,7 @@ package android.hardware.hdmi {
|
||||
method @NonNull @RequiresPermission(android.Manifest.permission.HDMI_CEC) public String getPowerControlMode();
|
||||
method @NonNull @RequiresPermission(android.Manifest.permission.HDMI_CEC) public String getPowerStateChangeOnActiveSourceLost();
|
||||
method @NonNull @RequiresPermission(android.Manifest.permission.HDMI_CEC) public int getRoutingControl();
|
||||
method @RequiresPermission(android.Manifest.permission.HDMI_CEC) public int getSadPresenceInQuery(@NonNull String);
|
||||
method @Nullable public android.hardware.hdmi.HdmiSwitchClient getSwitchClient();
|
||||
method @NonNull @RequiresPermission(android.Manifest.permission.HDMI_CEC) public int getSystemAudioControl();
|
||||
method @NonNull @RequiresPermission(android.Manifest.permission.HDMI_CEC) public int getSystemAudioModeMuting();
|
||||
@@ -3373,6 +3374,8 @@ package android.hardware.hdmi {
|
||||
method @RequiresPermission(android.Manifest.permission.HDMI_CEC) public void setPowerControlMode(@NonNull String);
|
||||
method @RequiresPermission(android.Manifest.permission.HDMI_CEC) public void setPowerStateChangeOnActiveSourceLost(@NonNull String);
|
||||
method @RequiresPermission(android.Manifest.permission.HDMI_CEC) public void setRoutingControl(@NonNull int);
|
||||
method @RequiresPermission(android.Manifest.permission.HDMI_CEC) public void setSadPresenceInQuery(@NonNull String, int);
|
||||
method @RequiresPermission(android.Manifest.permission.HDMI_CEC) public void setSadsPresenceInQuery(@NonNull java.util.List<java.lang.String>, int);
|
||||
method @RequiresPermission(android.Manifest.permission.HDMI_CEC) public void setStandbyMode(boolean);
|
||||
method @RequiresPermission(android.Manifest.permission.HDMI_CEC) public void setSystemAudioControl(@NonNull int);
|
||||
method @RequiresPermission(android.Manifest.permission.HDMI_CEC) public void setSystemAudioModeMuting(@NonNull int);
|
||||
@@ -3384,6 +3387,21 @@ package android.hardware.hdmi {
|
||||
field public static final String CEC_SETTING_NAME_HDMI_CEC_VERSION = "hdmi_cec_version";
|
||||
field public static final String CEC_SETTING_NAME_POWER_CONTROL_MODE = "power_control_mode";
|
||||
field public static final String CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST = "power_state_change_on_active_source_lost";
|
||||
field public static final String CEC_SETTING_NAME_QUERY_SAD_AAC = "query_sad_aac";
|
||||
field public static final String CEC_SETTING_NAME_QUERY_SAD_ATRAC = "query_sad_atrac";
|
||||
field public static final String CEC_SETTING_NAME_QUERY_SAD_DD = "query_sad_dd";
|
||||
field public static final String CEC_SETTING_NAME_QUERY_SAD_DDP = "query_sad_ddp";
|
||||
field public static final String CEC_SETTING_NAME_QUERY_SAD_DST = "query_sad_dst";
|
||||
field public static final String CEC_SETTING_NAME_QUERY_SAD_DTS = "query_sad_dts";
|
||||
field public static final String CEC_SETTING_NAME_QUERY_SAD_DTSHD = "query_sad_dtshd";
|
||||
field public static final String CEC_SETTING_NAME_QUERY_SAD_LPCM = "query_sad_lpcm";
|
||||
field public static final String CEC_SETTING_NAME_QUERY_SAD_MAX = "query_sad_max";
|
||||
field public static final String CEC_SETTING_NAME_QUERY_SAD_MP3 = "query_sad_mp3";
|
||||
field public static final String CEC_SETTING_NAME_QUERY_SAD_MPEG1 = "query_sad_mpeg1";
|
||||
field public static final String CEC_SETTING_NAME_QUERY_SAD_MPEG2 = "query_sad_mpeg2";
|
||||
field public static final String CEC_SETTING_NAME_QUERY_SAD_ONEBITAUDIO = "query_sad_onebitaudio";
|
||||
field public static final String CEC_SETTING_NAME_QUERY_SAD_TRUEHD = "query_sad_truehd";
|
||||
field public static final String CEC_SETTING_NAME_QUERY_SAD_WMAPRO = "query_sad_wmapro";
|
||||
field public static final String CEC_SETTING_NAME_ROUTING_CONTROL = "routing_control";
|
||||
field public static final String CEC_SETTING_NAME_SYSTEM_AUDIO_CONTROL = "system_audio_control";
|
||||
field public static final String CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING = "system_audio_mode_muting";
|
||||
@@ -3451,6 +3469,8 @@ package android.hardware.hdmi {
|
||||
field public static final int POWER_STATUS_TRANSIENT_TO_ON = 2; // 0x2
|
||||
field public static final int POWER_STATUS_TRANSIENT_TO_STANDBY = 3; // 0x3
|
||||
field public static final int POWER_STATUS_UNKNOWN = -1; // 0xffffffff
|
||||
field public static final int QUERY_SAD_DISABLED = 0; // 0x0
|
||||
field public static final int QUERY_SAD_ENABLED = 1; // 0x1
|
||||
field @Deprecated public static final int RESULT_ALREADY_IN_PROGRESS = 4; // 0x4
|
||||
field public static final int RESULT_COMMUNICATION_FAILED = 7; // 0x7
|
||||
field public static final int RESULT_EXCEPTION = 5; // 0x5
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5104,6 +5104,97 @@
|
||||
<bool name="config_cecRcProfileSourceMediaContextSensitiveMenuNotHandled_allowed">true</bool>
|
||||
<bool name="config_cecRcProfileSourceMediaContextSensitiveMenuNotHandled_default">true</bool>
|
||||
|
||||
<!-- Which Short Audio Descriptors a TV should query via CEC -->
|
||||
<bool name="config_cecQuerySadLpcm_userConfigurable">true</bool>
|
||||
<bool name="config_cecQuerySadLpcmEnabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadLpcmEnabled_default">true</bool>
|
||||
<bool name="config_cecQuerySadLpcmDisabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadLpcmDisabled_default">false</bool>
|
||||
|
||||
<bool name="config_cecQuerySadDd_userConfigurable">true</bool>
|
||||
<bool name="config_cecQuerySadDdEnabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadDdEnabled_default">true</bool>
|
||||
<bool name="config_cecQuerySadDdDisabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadDdDisabled_default">false</bool>
|
||||
|
||||
<bool name="config_cecQuerySadMpeg1_userConfigurable">true</bool>
|
||||
<bool name="config_cecQuerySadMpeg1Enabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadMpeg1Enabled_default">true</bool>
|
||||
<bool name="config_cecQuerySadMpeg1Disabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadMpeg1Disabled_default">false</bool>
|
||||
|
||||
<bool name="config_cecQuerySadMp3_userConfigurable">true</bool>
|
||||
<bool name="config_cecQuerySadMp3Enabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadMp3Enabled_default">true</bool>
|
||||
<bool name="config_cecQuerySadMp3Disabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadMp3Disabled_default">false</bool>
|
||||
|
||||
<bool name="config_cecQuerySadMpeg2_userConfigurable">true</bool>
|
||||
<bool name="config_cecQuerySadMpeg2Enabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadMpeg2Enabled_default">true</bool>
|
||||
<bool name="config_cecQuerySadMpeg2Disabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadMpeg2Disabled_default">false</bool>
|
||||
|
||||
<bool name="config_cecQuerySadAac_userConfigurable">true</bool>
|
||||
<bool name="config_cecQuerySadAacEnabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadAacEnabled_default">true</bool>
|
||||
<bool name="config_cecQuerySadAacDisabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadAacDisabled_default">false</bool>
|
||||
|
||||
<bool name="config_cecQuerySadDts_userConfigurable">true</bool>
|
||||
<bool name="config_cecQuerySadDtsEnabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadDtsEnabled_default">true</bool>
|
||||
<bool name="config_cecQuerySadDtsDisabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadDtsDisabled_default">false</bool>
|
||||
|
||||
<bool name="config_cecQuerySadAtrac_userConfigurable">true</bool>
|
||||
<bool name="config_cecQuerySadAtracEnabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadAtracEnabled_default">true</bool>
|
||||
<bool name="config_cecQuerySadAtracDisabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadAtracDisabled_default">false</bool>
|
||||
|
||||
<bool name="config_cecQuerySadOnebitaudio_userConfigurable">true</bool>
|
||||
<bool name="config_cecQuerySadOnebitaudioEnabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadOnebitaudioEnabled_default">true</bool>
|
||||
<bool name="config_cecQuerySadOnebitaudioDisabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadOnebitaudioDisabled_default">false</bool>
|
||||
|
||||
<bool name="config_cecQuerySadDdp_userConfigurable">true</bool>
|
||||
<bool name="config_cecQuerySadDdpEnabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadDdpEnabled_default">true</bool>
|
||||
<bool name="config_cecQuerySadDdpDisabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadDdpDisabled_default">false</bool>
|
||||
|
||||
<bool name="config_cecQuerySadDtshd_userConfigurable">true</bool>
|
||||
<bool name="config_cecQuerySadDtshdEnabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadDtshdEnabled_default">true</bool>
|
||||
<bool name="config_cecQuerySadDtshdDisabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadDtshdDisabled_default">false</bool>
|
||||
|
||||
<bool name="config_cecQuerySadTruehd_userConfigurable">true</bool>
|
||||
<bool name="config_cecQuerySadTruehdEnabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadTruehdEnabled_default">true</bool>
|
||||
<bool name="config_cecQuerySadTruehdDisabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadTruehdDisabled_default">false</bool>
|
||||
|
||||
<bool name="config_cecQuerySadDst_userConfigurable">true</bool>
|
||||
<bool name="config_cecQuerySadDstEnabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadDstEnabled_default">true</bool>
|
||||
<bool name="config_cecQuerySadDstDisabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadDstDisabled_default">false</bool>
|
||||
|
||||
<bool name="config_cecQuerySadWmapro_userConfigurable">true</bool>
|
||||
<bool name="config_cecQuerySadWmaproEnabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadWmaproEnabled_default">true</bool>
|
||||
<bool name="config_cecQuerySadWmaproDisabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadWmaproDisabled_default">false</bool>
|
||||
|
||||
<bool name="config_cecQuerySadMax_userConfigurable">true</bool>
|
||||
<bool name="config_cecQuerySadMaxEnabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadMaxEnabled_default">true</bool>
|
||||
<bool name="config_cecQuerySadMaxDisabled_allowed">true</bool>
|
||||
<bool name="config_cecQuerySadMaxDisabled_default">false</bool>
|
||||
|
||||
<!-- Whether app hibernation deletes OAT artifact files as part of global hibernation. -->
|
||||
<bool name="config_hibernationDeletesOatArtifactsEnabled">true</bool>
|
||||
|
||||
|
||||
@@ -4432,6 +4432,97 @@
|
||||
<java-symbol type="bool" name="config_cecRcProfileSourceMediaContextSensitiveMenuNotHandled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecRcProfileSourceMediaContextSensitiveMenuNotHandled_default" />
|
||||
|
||||
<!-- Which Short Audio Descriptors a TV should query via CEC -->
|
||||
<java-symbol type="bool" name="config_cecQuerySadLpcm_userConfigurable" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadLpcmEnabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadLpcmEnabled_default" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadLpcmDisabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadLpcmDisabled_default" />
|
||||
|
||||
<java-symbol type="bool" name="config_cecQuerySadDd_userConfigurable" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDdEnabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDdEnabled_default" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDdDisabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDdDisabled_default" />
|
||||
|
||||
<java-symbol type="bool" name="config_cecQuerySadMpeg1_userConfigurable" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMpeg1Enabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMpeg1Enabled_default" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMpeg1Disabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMpeg1Disabled_default" />
|
||||
|
||||
<java-symbol type="bool" name="config_cecQuerySadMp3_userConfigurable" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMp3Enabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMp3Enabled_default" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMp3Disabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMp3Disabled_default" />
|
||||
|
||||
<java-symbol type="bool" name="config_cecQuerySadMpeg2_userConfigurable" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMpeg2Enabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMpeg2Enabled_default" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMpeg2Disabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMpeg2Disabled_default" />
|
||||
|
||||
<java-symbol type="bool" name="config_cecQuerySadAac_userConfigurable" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadAacEnabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadAacEnabled_default" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadAacDisabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadAacDisabled_default" />
|
||||
|
||||
<java-symbol type="bool" name="config_cecQuerySadDts_userConfigurable" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDtsEnabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDtsEnabled_default" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDtsDisabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDtsDisabled_default" />
|
||||
|
||||
<java-symbol type="bool" name="config_cecQuerySadAtrac_userConfigurable" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadAtracEnabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadAtracEnabled_default" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadAtracDisabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadAtracDisabled_default" />
|
||||
|
||||
<java-symbol type="bool" name="config_cecQuerySadOnebitaudio_userConfigurable" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadOnebitaudioEnabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadOnebitaudioEnabled_default" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadOnebitaudioDisabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadOnebitaudioDisabled_default" />
|
||||
|
||||
<java-symbol type="bool" name="config_cecQuerySadDdp_userConfigurable" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDdpEnabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDdpEnabled_default" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDdpDisabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDdpDisabled_default" />
|
||||
|
||||
<java-symbol type="bool" name="config_cecQuerySadDtshd_userConfigurable" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDtshdEnabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDtshdEnabled_default" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDtshdDisabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDtshdDisabled_default" />
|
||||
|
||||
<java-symbol type="bool" name="config_cecQuerySadTruehd_userConfigurable" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadTruehdEnabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadTruehdEnabled_default" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadTruehdDisabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadTruehdDisabled_default" />
|
||||
|
||||
<java-symbol type="bool" name="config_cecQuerySadDst_userConfigurable" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDstEnabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDstEnabled_default" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDstDisabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadDstDisabled_default" />
|
||||
|
||||
<java-symbol type="bool" name="config_cecQuerySadWmapro_userConfigurable" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadWmaproEnabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadWmaproEnabled_default" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadWmaproDisabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadWmaproDisabled_default" />
|
||||
|
||||
<java-symbol type="bool" name="config_cecQuerySadMax_userConfigurable" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMaxEnabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMaxEnabled_default" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMaxDisabled_allowed" />
|
||||
<java-symbol type="bool" name="config_cecQuerySadMaxDisabled_default" />
|
||||
|
||||
<!-- Ids for RemoteViews -->
|
||||
<java-symbol type="id" name="remote_views_next_child" />
|
||||
<java-symbol type="id" name="remote_views_stable_id" />
|
||||
|
||||
@@ -408,11 +408,11 @@ public class HdmiCecConfig {
|
||||
HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_ROOT_MENU,
|
||||
R.bool.config_cecRcProfileSourceRootMenu_userConfigurable);
|
||||
rcProfileSourceRootMenu.registerValue(
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_ROOT_MENU_HANDLED,
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_MENU_HANDLED,
|
||||
R.bool.config_cecRcProfileSourceRootMenuHandled_allowed,
|
||||
R.bool.config_cecRcProfileSourceRootMenuHandled_default);
|
||||
rcProfileSourceRootMenu.registerValue(
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_ROOT_MENU_NOT_HANDLED,
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_MENU_NOT_HANDLED,
|
||||
R.bool.config_cecRcProfileSourceRootMenuNotHandled_allowed,
|
||||
R.bool.config_cecRcProfileSourceRootMenuNotHandled_default);
|
||||
|
||||
@@ -420,11 +420,11 @@ public class HdmiCecConfig {
|
||||
HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_SETUP_MENU,
|
||||
R.bool.config_cecRcProfileSourceSetupMenu_userConfigurable);
|
||||
rcProfileSourceSetupMenu.registerValue(
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_SETUP_MENU_HANDLED,
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_MENU_HANDLED,
|
||||
R.bool.config_cecRcProfileSourceSetupMenuHandled_allowed,
|
||||
R.bool.config_cecRcProfileSourceSetupMenuHandled_default);
|
||||
rcProfileSourceSetupMenu.registerValue(
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_SETUP_MENU_NOT_HANDLED,
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_MENU_NOT_HANDLED,
|
||||
R.bool.config_cecRcProfileSourceSetupMenuNotHandled_allowed,
|
||||
R.bool.config_cecRcProfileSourceSetupMenuNotHandled_default);
|
||||
|
||||
@@ -432,11 +432,11 @@ public class HdmiCecConfig {
|
||||
HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_CONTENTS_MENU,
|
||||
R.bool.config_cecRcProfileSourceContentsMenu_userConfigurable);
|
||||
rcProfileSourceContentsMenu.registerValue(
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_CONTENTS_MENU_HANDLED,
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_MENU_HANDLED,
|
||||
R.bool.config_cecRcProfileSourceContentsMenuHandled_allowed,
|
||||
R.bool.config_cecRcProfileSourceContentsMenuHandled_default);
|
||||
rcProfileSourceContentsMenu.registerValue(
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_CONTENTS_MENU_NOT_HANDLED,
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_MENU_NOT_HANDLED,
|
||||
R.bool.config_cecRcProfileSourceContentsMenuNotHandled_allowed,
|
||||
R.bool.config_cecRcProfileSourceContentsMenuNotHandled_default);
|
||||
|
||||
@@ -444,11 +444,11 @@ public class HdmiCecConfig {
|
||||
HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_TOP_MENU,
|
||||
R.bool.config_cecRcProfileSourceTopMenu_userConfigurable);
|
||||
rcProfileSourceTopMenu.registerValue(
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_TOP_MENU_HANDLED,
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_MENU_HANDLED,
|
||||
R.bool.config_cecRcProfileSourceTopMenuHandled_allowed,
|
||||
R.bool.config_cecRcProfileSourceTopMenuHandled_default);
|
||||
rcProfileSourceTopMenu.registerValue(
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_TOP_MENU_NOT_HANDLED,
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_MENU_NOT_HANDLED,
|
||||
R.bool.config_cecRcProfileSourceTopMenuNotHandled_allowed,
|
||||
R.bool.config_cecRcProfileSourceTopMenuNotHandled_default);
|
||||
|
||||
@@ -457,14 +457,194 @@ public class HdmiCecConfig {
|
||||
.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU,
|
||||
R.bool.config_cecRcProfileSourceMediaContextSensitiveMenu_userConfigurable);
|
||||
rcProfileSourceMediaContextSensitiveMenu.registerValue(
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_MEDIA_CONTEXT_SENSITIVE_MENU_HANDLED,
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_MENU_HANDLED,
|
||||
R.bool.config_cecRcProfileSourceMediaContextSensitiveMenuHandled_allowed,
|
||||
R.bool.config_cecRcProfileSourceMediaContextSensitiveMenuHandled_default);
|
||||
rcProfileSourceMediaContextSensitiveMenu.registerValue(
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_MEDIA_CONTEXT_SENSITIVE_MENU_NOT_HANDLED,
|
||||
HdmiControlManager.RC_PROFILE_SOURCE_MENU_NOT_HANDLED,
|
||||
R.bool.config_cecRcProfileSourceMediaContextSensitiveMenuNotHandled_allowed,
|
||||
R.bool.config_cecRcProfileSourceMediaContextSensitiveMenuNotHandled_default);
|
||||
|
||||
Setting querySadLpcm = registerSetting(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_LPCM,
|
||||
R.bool.config_cecQuerySadLpcm_userConfigurable);
|
||||
querySadLpcm.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_ENABLED,
|
||||
R.bool.config_cecQuerySadLpcmEnabled_allowed,
|
||||
R.bool.config_cecQuerySadLpcmEnabled_default);
|
||||
querySadLpcm.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_DISABLED,
|
||||
R.bool.config_cecQuerySadLpcmDisabled_allowed,
|
||||
R.bool.config_cecQuerySadLpcmDisabled_default);
|
||||
|
||||
Setting querySadDd = registerSetting(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DD,
|
||||
R.bool.config_cecQuerySadDd_userConfigurable);
|
||||
querySadDd.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_ENABLED,
|
||||
R.bool.config_cecQuerySadDdEnabled_allowed,
|
||||
R.bool.config_cecQuerySadDdEnabled_default);
|
||||
querySadDd.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_DISABLED,
|
||||
R.bool.config_cecQuerySadDdDisabled_allowed,
|
||||
R.bool.config_cecQuerySadDdDisabled_default);
|
||||
|
||||
Setting querySadMpeg1 = registerSetting(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MPEG1,
|
||||
R.bool.config_cecQuerySadMpeg1_userConfigurable);
|
||||
querySadMpeg1.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_ENABLED,
|
||||
R.bool.config_cecQuerySadMpeg1Enabled_allowed,
|
||||
R.bool.config_cecQuerySadMpeg1Enabled_default);
|
||||
querySadMpeg1.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_DISABLED,
|
||||
R.bool.config_cecQuerySadMpeg1Disabled_allowed,
|
||||
R.bool.config_cecQuerySadMpeg1Disabled_default);
|
||||
|
||||
Setting querySadMp3 = registerSetting(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MP3,
|
||||
R.bool.config_cecQuerySadMp3_userConfigurable);
|
||||
querySadMp3.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_ENABLED,
|
||||
R.bool.config_cecQuerySadMp3Enabled_allowed,
|
||||
R.bool.config_cecQuerySadMp3Enabled_default);
|
||||
querySadMp3.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_DISABLED,
|
||||
R.bool.config_cecQuerySadMp3Disabled_allowed,
|
||||
R.bool.config_cecQuerySadMp3Disabled_default);
|
||||
|
||||
Setting querySadMpeg2 = registerSetting(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MPEG2,
|
||||
R.bool.config_cecQuerySadMpeg2_userConfigurable);
|
||||
querySadMpeg2.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_ENABLED,
|
||||
R.bool.config_cecQuerySadMpeg2Enabled_allowed,
|
||||
R.bool.config_cecQuerySadMpeg2Enabled_default);
|
||||
querySadMpeg2.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_DISABLED,
|
||||
R.bool.config_cecQuerySadMpeg2Disabled_allowed,
|
||||
R.bool.config_cecQuerySadMpeg2Disabled_default);
|
||||
|
||||
Setting querySadAac = registerSetting(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_AAC,
|
||||
R.bool.config_cecQuerySadAac_userConfigurable);
|
||||
querySadAac.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_ENABLED,
|
||||
R.bool.config_cecQuerySadAacEnabled_allowed,
|
||||
R.bool.config_cecQuerySadAacEnabled_default);
|
||||
querySadAac.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_DISABLED,
|
||||
R.bool.config_cecQuerySadAacDisabled_allowed,
|
||||
R.bool.config_cecQuerySadAacDisabled_default);
|
||||
|
||||
Setting querySadDts = registerSetting(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DTS,
|
||||
R.bool.config_cecQuerySadDts_userConfigurable);
|
||||
querySadDts.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_ENABLED,
|
||||
R.bool.config_cecQuerySadDtsEnabled_allowed,
|
||||
R.bool.config_cecQuerySadDtsEnabled_default);
|
||||
querySadDts.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_DISABLED,
|
||||
R.bool.config_cecQuerySadDtsDisabled_allowed,
|
||||
R.bool.config_cecQuerySadDtsDisabled_default);
|
||||
|
||||
Setting querySadAtrac = registerSetting(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_ATRAC,
|
||||
R.bool.config_cecQuerySadAtrac_userConfigurable);
|
||||
querySadAtrac.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_ENABLED,
|
||||
R.bool.config_cecQuerySadAtracEnabled_allowed,
|
||||
R.bool.config_cecQuerySadAtracEnabled_default);
|
||||
querySadAtrac.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_DISABLED,
|
||||
R.bool.config_cecQuerySadAtracDisabled_allowed,
|
||||
R.bool.config_cecQuerySadAtracDisabled_default);
|
||||
|
||||
Setting querySadOnebitaudio = registerSetting(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_ONEBITAUDIO,
|
||||
R.bool.config_cecQuerySadOnebitaudio_userConfigurable);
|
||||
querySadOnebitaudio.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_ENABLED,
|
||||
R.bool.config_cecQuerySadOnebitaudioEnabled_allowed,
|
||||
R.bool.config_cecQuerySadOnebitaudioEnabled_default);
|
||||
querySadOnebitaudio.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_DISABLED,
|
||||
R.bool.config_cecQuerySadOnebitaudioDisabled_allowed,
|
||||
R.bool.config_cecQuerySadOnebitaudioDisabled_default);
|
||||
|
||||
Setting querySadDdp = registerSetting(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DDP,
|
||||
R.bool.config_cecQuerySadDdp_userConfigurable);
|
||||
querySadDdp.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_ENABLED,
|
||||
R.bool.config_cecQuerySadDdpEnabled_allowed,
|
||||
R.bool.config_cecQuerySadDdpEnabled_default);
|
||||
querySadDdp.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_DISABLED,
|
||||
R.bool.config_cecQuerySadDdpDisabled_allowed,
|
||||
R.bool.config_cecQuerySadDdpDisabled_default);
|
||||
|
||||
Setting querySadDtshd = registerSetting(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DTSHD,
|
||||
R.bool.config_cecQuerySadDtshd_userConfigurable);
|
||||
querySadDtshd.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_ENABLED,
|
||||
R.bool.config_cecQuerySadDtshdEnabled_allowed,
|
||||
R.bool.config_cecQuerySadDtshdEnabled_default);
|
||||
querySadDtshd.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_DISABLED,
|
||||
R.bool.config_cecQuerySadDtshdDisabled_allowed,
|
||||
R.bool.config_cecQuerySadDtshdDisabled_default);
|
||||
|
||||
Setting querySadTruehd = registerSetting(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_TRUEHD,
|
||||
R.bool.config_cecQuerySadTruehd_userConfigurable);
|
||||
querySadTruehd.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_ENABLED,
|
||||
R.bool.config_cecQuerySadTruehdEnabled_allowed,
|
||||
R.bool.config_cecQuerySadTruehdEnabled_default);
|
||||
querySadTruehd.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_DISABLED,
|
||||
R.bool.config_cecQuerySadTruehdDisabled_allowed,
|
||||
R.bool.config_cecQuerySadTruehdDisabled_default);
|
||||
|
||||
Setting querySadDst = registerSetting(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DST,
|
||||
R.bool.config_cecQuerySadDst_userConfigurable);
|
||||
querySadDst.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_ENABLED,
|
||||
R.bool.config_cecQuerySadDstEnabled_allowed,
|
||||
R.bool.config_cecQuerySadDstEnabled_default);
|
||||
querySadDst.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_DISABLED,
|
||||
R.bool.config_cecQuerySadDstDisabled_allowed,
|
||||
R.bool.config_cecQuerySadDstDisabled_default);
|
||||
|
||||
Setting querySadWmapro = registerSetting(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_WMAPRO,
|
||||
R.bool.config_cecQuerySadWmapro_userConfigurable);
|
||||
querySadWmapro.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_ENABLED,
|
||||
R.bool.config_cecQuerySadWmaproEnabled_allowed,
|
||||
R.bool.config_cecQuerySadWmaproEnabled_default);
|
||||
querySadWmapro.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_DISABLED,
|
||||
R.bool.config_cecQuerySadWmaproDisabled_allowed,
|
||||
R.bool.config_cecQuerySadWmaproDisabled_default);
|
||||
|
||||
Setting querySadMax = registerSetting(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MAX,
|
||||
R.bool.config_cecQuerySadMax_userConfigurable);
|
||||
querySadMax.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_ENABLED,
|
||||
R.bool.config_cecQuerySadMaxEnabled_allowed,
|
||||
R.bool.config_cecQuerySadMaxEnabled_default);
|
||||
querySadMax.registerValue(
|
||||
HdmiControlManager.QUERY_SAD_DISABLED,
|
||||
R.bool.config_cecQuerySadMaxDisabled_allowed,
|
||||
R.bool.config_cecQuerySadMaxDisabled_default);
|
||||
|
||||
verifySettings();
|
||||
}
|
||||
|
||||
@@ -530,6 +710,36 @@ public class HdmiCecConfig {
|
||||
case HdmiControlManager
|
||||
.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_LPCM:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DD:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MPEG1:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MP3:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MPEG2:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_AAC:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DTS:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_ATRAC:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_ONEBITAUDIO:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DDP:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DTSHD:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_TRUEHD:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DST:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_WMAPRO:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MAX:
|
||||
return STORAGE_SHARED_PREFS;
|
||||
default:
|
||||
throw new VerificationException("Invalid CEC setting '" + setting.getName()
|
||||
+ "' storage.");
|
||||
@@ -571,6 +781,36 @@ public class HdmiCecConfig {
|
||||
case HdmiControlManager
|
||||
.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU:
|
||||
return setting.getName();
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_LPCM:
|
||||
return setting.getName();
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DD:
|
||||
return setting.getName();
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MPEG1:
|
||||
return setting.getName();
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MP3:
|
||||
return setting.getName();
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MPEG2:
|
||||
return setting.getName();
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_AAC:
|
||||
return setting.getName();
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DTS:
|
||||
return setting.getName();
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_ATRAC:
|
||||
return setting.getName();
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_ONEBITAUDIO:
|
||||
return setting.getName();
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DDP:
|
||||
return setting.getName();
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DTSHD:
|
||||
return setting.getName();
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_TRUEHD:
|
||||
return setting.getName();
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DST:
|
||||
return setting.getName();
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_WMAPRO:
|
||||
return setting.getName();
|
||||
case HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MAX:
|
||||
return setting.getName();
|
||||
default:
|
||||
throw new VerificationException("Invalid CEC setting '" + setting.getName()
|
||||
+ "' storage key.");
|
||||
|
||||
@@ -151,6 +151,7 @@ abstract class HdmiCecLocalDevice {
|
||||
private int mActiveRoutingPath;
|
||||
|
||||
protected final HdmiCecMessageCache mCecMessageCache = new HdmiCecMessageCache();
|
||||
@VisibleForTesting
|
||||
protected final Object mLock;
|
||||
|
||||
// A collection of FeatureAction.
|
||||
|
||||
@@ -332,27 +332,27 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice {
|
||||
HdmiCecConfig hdmiCecConfig = mService.getHdmiCecConfig();
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_ROOT_MENU)
|
||||
== HdmiControlManager.RC_PROFILE_SOURCE_ROOT_MENU_HANDLED) {
|
||||
== HdmiControlManager.RC_PROFILE_SOURCE_MENU_HANDLED) {
|
||||
features.add(Constants.RC_PROFILE_SOURCE_HANDLES_ROOT_MENU);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_SETUP_MENU)
|
||||
== HdmiControlManager.RC_PROFILE_SOURCE_SETUP_MENU_HANDLED) {
|
||||
== HdmiControlManager.RC_PROFILE_SOURCE_MENU_HANDLED) {
|
||||
features.add(Constants.RC_PROFILE_SOURCE_HANDLES_SETUP_MENU);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_CONTENTS_MENU)
|
||||
== HdmiControlManager.RC_PROFILE_SOURCE_CONTENTS_MENU_HANDLED) {
|
||||
== HdmiControlManager.RC_PROFILE_SOURCE_MENU_HANDLED) {
|
||||
features.add(Constants.RC_PROFILE_SOURCE_HANDLES_CONTENTS_MENU);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_TOP_MENU)
|
||||
== HdmiControlManager.RC_PROFILE_SOURCE_TOP_MENU_HANDLED) {
|
||||
== HdmiControlManager.RC_PROFILE_SOURCE_MENU_HANDLED) {
|
||||
features.add(Constants.RC_PROFILE_SOURCE_HANDLES_TOP_MENU);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(HdmiControlManager
|
||||
.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU)
|
||||
== HdmiControlManager.RC_PROFILE_SOURCE_MEDIA_CONTEXT_SENSITIVE_MENU_HANDLED) {
|
||||
== HdmiControlManager.RC_PROFILE_SOURCE_MENU_HANDLED) {
|
||||
features.add(Constants.RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU);
|
||||
}
|
||||
return features;
|
||||
|
||||
@@ -16,10 +16,10 @@
|
||||
|
||||
package com.android.server.hdmi;
|
||||
|
||||
import android.hardware.hdmi.HdmiControlManager;
|
||||
import android.util.Slog;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -35,27 +35,11 @@ final class RequestSadAction extends HdmiCecFeatureAction {
|
||||
|
||||
// State in which the action is waiting for <Report Short Audio Descriptor>.
|
||||
private static final int STATE_WAITING_FOR_REPORT_SAD = 1;
|
||||
|
||||
private static final List<Integer> ALL_CEC_CODECS = new ArrayList<Integer>(Arrays.asList(
|
||||
Constants.AUDIO_CODEC_LPCM,
|
||||
Constants.AUDIO_CODEC_DD,
|
||||
Constants.AUDIO_CODEC_MPEG1,
|
||||
Constants.AUDIO_CODEC_MP3,
|
||||
Constants.AUDIO_CODEC_MPEG2,
|
||||
Constants.AUDIO_CODEC_AAC,
|
||||
Constants.AUDIO_CODEC_DTS,
|
||||
Constants.AUDIO_CODEC_ATRAC,
|
||||
Constants.AUDIO_CODEC_ONEBITAUDIO,
|
||||
Constants.AUDIO_CODEC_DDP,
|
||||
Constants.AUDIO_CODEC_DTSHD,
|
||||
Constants.AUDIO_CODEC_TRUEHD,
|
||||
Constants.AUDIO_CODEC_DST,
|
||||
Constants.AUDIO_CODEC_WMAPRO,
|
||||
Constants.AUDIO_CODEC_MAX));
|
||||
private static final int MAX_SAD_PER_REQUEST = 4;
|
||||
private static final int RETRY_COUNTER_MAX = 1;
|
||||
private final int mTargetAddress;
|
||||
private final RequestSadCallback mCallback;
|
||||
private final List<Integer> mCecCodecsToQuery = new ArrayList<>();
|
||||
// List of all valid SADs reported by the target device. Not parsed nor deduplicated.
|
||||
private final List<byte[]> mSupportedSads = new ArrayList<>();
|
||||
private int mQueriedSadCount = 0; // Number of SADs queries that has already been completed
|
||||
@@ -71,9 +55,84 @@ final class RequestSadAction extends HdmiCecFeatureAction {
|
||||
super(source);
|
||||
mTargetAddress = targetAddress;
|
||||
mCallback = Objects.requireNonNull(callback);
|
||||
HdmiCecConfig hdmiCecConfig = localDevice().mService.getHdmiCecConfig();
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_LPCM)
|
||||
== HdmiControlManager.QUERY_SAD_ENABLED) {
|
||||
mCecCodecsToQuery.add(Constants.AUDIO_CODEC_LPCM);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DD)
|
||||
== HdmiControlManager.QUERY_SAD_ENABLED) {
|
||||
mCecCodecsToQuery.add(Constants.AUDIO_CODEC_DD);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MPEG1)
|
||||
== HdmiControlManager.QUERY_SAD_ENABLED) {
|
||||
mCecCodecsToQuery.add(Constants.AUDIO_CODEC_MPEG1);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MP3)
|
||||
== HdmiControlManager.QUERY_SAD_ENABLED) {
|
||||
mCecCodecsToQuery.add(Constants.AUDIO_CODEC_MP3);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MPEG2)
|
||||
== HdmiControlManager.QUERY_SAD_ENABLED) {
|
||||
mCecCodecsToQuery.add(Constants.AUDIO_CODEC_MPEG2);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_AAC)
|
||||
== HdmiControlManager.QUERY_SAD_ENABLED) {
|
||||
mCecCodecsToQuery.add(Constants.AUDIO_CODEC_AAC);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DTS)
|
||||
== HdmiControlManager.QUERY_SAD_ENABLED) {
|
||||
mCecCodecsToQuery.add(Constants.AUDIO_CODEC_DTS);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_ATRAC)
|
||||
== HdmiControlManager.QUERY_SAD_ENABLED) {
|
||||
mCecCodecsToQuery.add(Constants.AUDIO_CODEC_ATRAC);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_ONEBITAUDIO)
|
||||
== HdmiControlManager.QUERY_SAD_ENABLED) {
|
||||
mCecCodecsToQuery.add(Constants.AUDIO_CODEC_ONEBITAUDIO);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DDP)
|
||||
== HdmiControlManager.QUERY_SAD_ENABLED) {
|
||||
mCecCodecsToQuery.add(Constants.AUDIO_CODEC_DDP);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DTSHD)
|
||||
== HdmiControlManager.QUERY_SAD_ENABLED) {
|
||||
mCecCodecsToQuery.add(Constants.AUDIO_CODEC_DTSHD);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_TRUEHD)
|
||||
== HdmiControlManager.QUERY_SAD_ENABLED) {
|
||||
mCecCodecsToQuery.add(Constants.AUDIO_CODEC_TRUEHD);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DST)
|
||||
== HdmiControlManager.QUERY_SAD_ENABLED) {
|
||||
mCecCodecsToQuery.add(Constants.AUDIO_CODEC_DST);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_WMAPRO)
|
||||
== HdmiControlManager.QUERY_SAD_ENABLED) {
|
||||
mCecCodecsToQuery.add(Constants.AUDIO_CODEC_WMAPRO);
|
||||
}
|
||||
if (hdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MAX)
|
||||
== HdmiControlManager.QUERY_SAD_ENABLED) {
|
||||
mCecCodecsToQuery.add(Constants.AUDIO_CODEC_MAX);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
boolean start() {
|
||||
querySad();
|
||||
@@ -81,13 +140,13 @@ final class RequestSadAction extends HdmiCecFeatureAction {
|
||||
}
|
||||
|
||||
private void querySad() {
|
||||
if (mQueriedSadCount >= ALL_CEC_CODECS.size()) {
|
||||
if (mQueriedSadCount >= mCecCodecsToQuery.size()) {
|
||||
wrapUpAndFinish();
|
||||
return;
|
||||
}
|
||||
int[] codecsToQuery = ALL_CEC_CODECS.subList(mQueriedSadCount,
|
||||
Math.min(ALL_CEC_CODECS.size(), mQueriedSadCount + MAX_SAD_PER_REQUEST))
|
||||
.stream().mapToInt(i -> i).toArray();
|
||||
int[] codecsToQuery = mCecCodecsToQuery.subList(mQueriedSadCount,
|
||||
Math.min(mCecCodecsToQuery.size(), mQueriedSadCount + MAX_SAD_PER_REQUEST))
|
||||
.stream().mapToInt(i -> i).toArray();
|
||||
sendCommand(HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(getSourceAddress(),
|
||||
mTargetAddress, codecsToQuery));
|
||||
mState = STATE_WAITING_FOR_REPORT_SAD;
|
||||
@@ -111,9 +170,10 @@ final class RequestSadAction extends HdmiCecFeatureAction {
|
||||
byte[] sad = new byte[]{cmd.getParams()[i], cmd.getParams()[i + 1],
|
||||
cmd.getParams()[i + 2]};
|
||||
updateResult(sad);
|
||||
} else {
|
||||
// Don't include invalid codecs in the result. Don't query again.
|
||||
Slog.w(TAG, "Dropped invalid codec " + cmd.getParams()[i] + ".");
|
||||
}
|
||||
// Don't include invalid codecs in the result. Don't query again.
|
||||
Slog.w(TAG, "Received invalid codec " + cmd.getParams()[i] + ".");
|
||||
}
|
||||
mQueriedSadCount += MAX_SAD_PER_REQUEST;
|
||||
mTimeoutRetry = 0;
|
||||
|
||||
@@ -242,6 +242,101 @@ final class FakeHdmiCecConfig extends HdmiCecConfig {
|
||||
doReturn(true).when(resources).getBoolean(
|
||||
R.bool.config_cecRcProfileSourceMediaContextSensitiveMenuNotHandled_default);
|
||||
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadLpcm_userConfigurable);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadLpcmEnabled_allowed);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadLpcmEnabled_default);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadLpcmDisabled_allowed);
|
||||
doReturn(false).when(resources).getBoolean(R.bool.config_cecQuerySadLpcmDisabled_default);
|
||||
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDd_userConfigurable);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDdEnabled_allowed);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDdEnabled_default);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDdDisabled_allowed);
|
||||
doReturn(false).when(resources).getBoolean(R.bool.config_cecQuerySadDdDisabled_default);
|
||||
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMpeg1_userConfigurable);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMpeg1Enabled_allowed);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMpeg1Enabled_default);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMpeg1Disabled_allowed);
|
||||
doReturn(false).when(resources).getBoolean(R.bool.config_cecQuerySadMpeg1Disabled_default);
|
||||
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMp3_userConfigurable);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMp3Enabled_allowed);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMp3Enabled_default);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMp3Disabled_allowed);
|
||||
doReturn(false).when(resources).getBoolean(R.bool.config_cecQuerySadMp3Disabled_default);
|
||||
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMpeg2_userConfigurable);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMpeg2Enabled_allowed);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMpeg2Enabled_default);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMpeg2Disabled_allowed);
|
||||
doReturn(false).when(resources).getBoolean(R.bool.config_cecQuerySadMpeg2Disabled_default);
|
||||
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadAac_userConfigurable);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadAacEnabled_allowed);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadAacEnabled_default);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadAacDisabled_allowed);
|
||||
doReturn(false).when(resources).getBoolean(R.bool.config_cecQuerySadAacDisabled_default);
|
||||
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDts_userConfigurable);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDtsEnabled_allowed);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDtsEnabled_default);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDtsDisabled_allowed);
|
||||
doReturn(false).when(resources).getBoolean(R.bool.config_cecQuerySadDtsDisabled_default);
|
||||
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadAtrac_userConfigurable);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadAtracEnabled_allowed);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadAtracEnabled_default);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadAtracDisabled_allowed);
|
||||
doReturn(false).when(resources).getBoolean(R.bool.config_cecQuerySadAtracDisabled_default);
|
||||
|
||||
doReturn(true).when(resources).getBoolean(
|
||||
R.bool.config_cecQuerySadOnebitaudio_userConfigurable);
|
||||
doReturn(true).when(resources).getBoolean(
|
||||
R.bool.config_cecQuerySadOnebitaudioEnabled_allowed);
|
||||
doReturn(true).when(resources).getBoolean(
|
||||
R.bool.config_cecQuerySadOnebitaudioEnabled_default);
|
||||
doReturn(true).when(resources).getBoolean(
|
||||
R.bool.config_cecQuerySadOnebitaudioDisabled_allowed);
|
||||
doReturn(false).when(resources).getBoolean(
|
||||
R.bool.config_cecQuerySadOnebitaudioDisabled_default);
|
||||
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDdp_userConfigurable);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDdpEnabled_allowed);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDdpEnabled_default);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDdpDisabled_allowed);
|
||||
doReturn(false).when(resources).getBoolean(R.bool.config_cecQuerySadDdpDisabled_default);
|
||||
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDtshd_userConfigurable);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDtshdEnabled_allowed);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDtshdEnabled_default);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDtshdDisabled_allowed);
|
||||
doReturn(false).when(resources).getBoolean(R.bool.config_cecQuerySadDtshdDisabled_default);
|
||||
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadTruehd_userConfigurable);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadTruehdEnabled_allowed);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadTruehdEnabled_default);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadTruehdDisabled_allowed);
|
||||
doReturn(false).when(resources).getBoolean(R.bool.config_cecQuerySadTruehdDisabled_default);
|
||||
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDst_userConfigurable);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDstEnabled_allowed);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDstEnabled_default);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadDstDisabled_allowed);
|
||||
doReturn(false).when(resources).getBoolean(R.bool.config_cecQuerySadDstDisabled_default);
|
||||
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadWmapro_userConfigurable);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadWmaproEnabled_allowed);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadWmaproEnabled_default);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadWmaproDisabled_allowed);
|
||||
doReturn(false).when(resources).getBoolean(R.bool.config_cecQuerySadWmaproDisabled_default);
|
||||
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMax_userConfigurable);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMaxEnabled_allowed);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMaxEnabled_default);
|
||||
doReturn(true).when(resources).getBoolean(R.bool.config_cecQuerySadMaxDisabled_allowed);
|
||||
doReturn(false).when(resources).getBoolean(R.bool.config_cecQuerySadMaxDisabled_default);
|
||||
|
||||
return resources;
|
||||
}
|
||||
|
||||
|
||||
@@ -89,7 +89,22 @@ public final class HdmiCecConfigTest {
|
||||
HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_CONTENTS_MENU,
|
||||
HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_TOP_MENU,
|
||||
HdmiControlManager
|
||||
.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU);
|
||||
.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_LPCM,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DD,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MPEG1,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MP3,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MPEG2,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_AAC,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DTS,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_ATRAC,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_ONEBITAUDIO,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DDP,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DTSHD,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_TRUEHD,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DST,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_WMAPRO,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MAX);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -112,7 +127,22 @@ public final class HdmiCecConfigTest {
|
||||
HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_CONTENTS_MENU,
|
||||
HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_TOP_MENU,
|
||||
HdmiControlManager
|
||||
.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU);
|
||||
.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_LPCM,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DD,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MPEG1,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MP3,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MPEG2,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_AAC,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DTS,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_ATRAC,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_ONEBITAUDIO,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DDP,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DTSHD,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_TRUEHD,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DST,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_WMAPRO,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MAX);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -135,7 +165,22 @@ public final class HdmiCecConfigTest {
|
||||
HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_CONTENTS_MENU,
|
||||
HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_TOP_MENU,
|
||||
HdmiControlManager
|
||||
.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU);
|
||||
.CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_LPCM,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DD,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MPEG1,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MP3,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MPEG2,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_AAC,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DTS,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_ATRAC,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_ONEBITAUDIO,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DDP,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DTSHD,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_TRUEHD,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_DST,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_WMAPRO,
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MAX);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -22,6 +22,7 @@ import static com.android.server.hdmi.HdmiControlService.INITIATED_BY_ENABLE_CEC
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import android.content.Context;
|
||||
import android.hardware.hdmi.HdmiControlManager;
|
||||
import android.os.Looper;
|
||||
import android.os.test.TestLooper;
|
||||
import android.platform.test.annotations.Presubmit;
|
||||
@@ -68,6 +69,7 @@ public class RequestSadActionTest {
|
||||
private Looper mMyLooper;
|
||||
private TestLooper mTestLooper = new TestLooper();
|
||||
private ArrayList<HdmiCecLocalDevice> mLocalDevices = new ArrayList<>();
|
||||
private int mTvLogicalAddress;
|
||||
private List<byte[]> mSupportedSads;
|
||||
private RequestSadCallback mCallback =
|
||||
new RequestSadCallback() {
|
||||
@@ -94,7 +96,7 @@ public class RequestSadActionTest {
|
||||
mMyLooper = mTestLooper.getLooper();
|
||||
|
||||
mHdmiControlService =
|
||||
new HdmiControlService(InstrumentationRegistry.getTargetContext(),
|
||||
new HdmiControlService(context,
|
||||
Collections.emptyList()) {
|
||||
@Override
|
||||
boolean isControlEnabled() {
|
||||
@@ -129,6 +131,9 @@ public class RequestSadActionTest {
|
||||
mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC);
|
||||
mNativeWrapper.setPhysicalAddress(0x0000);
|
||||
mTestLooper.dispatchAll();
|
||||
synchronized (mHdmiCecLocalDeviceTv.mLock) {
|
||||
mTvLogicalAddress = mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress();
|
||||
}
|
||||
mNativeWrapper.clearResultMessages();
|
||||
}
|
||||
|
||||
@@ -140,8 +145,7 @@ public class RequestSadActionTest {
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected1 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_1.stream().mapToInt(i -> i).toArray());
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected1);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
@@ -153,8 +157,7 @@ public class RequestSadActionTest {
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected2 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_2.stream().mapToInt(i -> i).toArray());
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected2);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
@@ -166,8 +169,7 @@ public class RequestSadActionTest {
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected3 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_3.stream().mapToInt(i -> i).toArray());
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected3);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
@@ -179,8 +181,7 @@ public class RequestSadActionTest {
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected4 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_4.stream().mapToInt(i -> i).toArray());
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected4);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
@@ -200,14 +201,12 @@ public class RequestSadActionTest {
|
||||
action.start();
|
||||
mTestLooper.dispatchAll();
|
||||
HdmiCecMessage featureAbort = HdmiCecMessageBuilder.buildFeatureAbortCommand(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress,
|
||||
Constants.MESSAGE_REQUEST_SHORT_AUDIO_DESCRIPTOR,
|
||||
Constants.ABORT_INVALID_OPERAND);
|
||||
|
||||
HdmiCecMessage expected1 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_1.stream().mapToInt(i -> i).toArray());
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected1);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
@@ -215,8 +214,7 @@ public class RequestSadActionTest {
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected2 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_2.stream().mapToInt(i -> i).toArray());
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected2);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
@@ -224,8 +222,7 @@ public class RequestSadActionTest {
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected3 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_3.stream().mapToInt(i -> i).toArray());
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected3);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
@@ -233,8 +230,7 @@ public class RequestSadActionTest {
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected4 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_4.stream().mapToInt(i -> i).toArray());
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected4);
|
||||
action.processCommand(featureAbort);
|
||||
@@ -251,8 +247,7 @@ public class RequestSadActionTest {
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected1 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_1.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_1 = new byte[]{
|
||||
0x01, 0x18, 0x4A,
|
||||
@@ -260,16 +255,14 @@ public class RequestSadActionTest {
|
||||
0x03, 0x4B, 0x00,
|
||||
0x04, 0x20, 0x0A};
|
||||
HdmiCecMessage response1 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_1);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_1);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected1);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response1);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected2 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_2.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_2 = new byte[]{
|
||||
0x05, 0x18, 0x4A,
|
||||
@@ -277,16 +270,14 @@ public class RequestSadActionTest {
|
||||
0x07, 0x4B, 0x00,
|
||||
0x08, 0x20, 0x0A};
|
||||
HdmiCecMessage response2 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_2);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_2);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected2);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response2);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected3 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_3.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_3 = new byte[]{
|
||||
0x09, 0x18, 0x4A,
|
||||
@@ -294,24 +285,21 @@ public class RequestSadActionTest {
|
||||
0x0B, 0x4B, 0x00,
|
||||
0x0C, 0x20, 0x0A};
|
||||
HdmiCecMessage response3 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_3);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_3);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected3);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response3);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected4 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_4.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_4 = new byte[]{
|
||||
0x0D, 0x18, 0x4A,
|
||||
0x0E, 0x64, 0x5A,
|
||||
0x0F, 0x4B, 0x00};
|
||||
HdmiCecMessage response4 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_4);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_4);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected4);
|
||||
action.processCommand(response4);
|
||||
mTestLooper.dispatchAll();
|
||||
@@ -335,38 +323,33 @@ public class RequestSadActionTest {
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected1 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_1.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_1 = new byte[]{
|
||||
0x01, 0x18, 0x4A,
|
||||
0x03, 0x4B, 0x00,
|
||||
0x04, 0x20, 0x0A};
|
||||
HdmiCecMessage response1 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_1);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_1);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected1);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response1);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected2 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_2.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_2 = new byte[]{
|
||||
0x08, 0x20, 0x0A};
|
||||
HdmiCecMessage response2 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_2);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_2);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected2);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response2);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected3 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_3.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_3 = new byte[]{
|
||||
0x09, 0x18, 0x4A,
|
||||
@@ -374,22 +357,19 @@ public class RequestSadActionTest {
|
||||
0x0B, 0x4B, 0x00,
|
||||
0x0C, 0x20, 0x0A};
|
||||
HdmiCecMessage response3 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_3);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_3);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected3);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response3);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected4 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_4.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_4 = new byte[]{
|
||||
0x0F, 0x4B, 0x00};
|
||||
HdmiCecMessage response4 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_4);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_4);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected4);
|
||||
action.processCommand(response4);
|
||||
mTestLooper.dispatchAll();
|
||||
@@ -413,8 +393,7 @@ public class RequestSadActionTest {
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected1 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_1.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_1 = new byte[]{
|
||||
0x20, 0x18, 0x4A,
|
||||
@@ -422,16 +401,14 @@ public class RequestSadActionTest {
|
||||
0x22, 0x4B, 0x00,
|
||||
0x23, 0x20, 0x0A};
|
||||
HdmiCecMessage response1 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_1);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_1);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected1);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response1);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected2 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_2.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_2 = new byte[]{
|
||||
0x24, 0x18, 0x4A,
|
||||
@@ -439,16 +416,14 @@ public class RequestSadActionTest {
|
||||
0x26, 0x4B, 0x00,
|
||||
0x27, 0x20, 0x0A};
|
||||
HdmiCecMessage response2 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_2);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_2);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected2);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response2);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected3 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_3.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_3 = new byte[]{
|
||||
0x28, 0x18, 0x4A,
|
||||
@@ -456,24 +431,21 @@ public class RequestSadActionTest {
|
||||
0x2A, 0x4B, 0x00,
|
||||
0x2B, 0x20, 0x0A};
|
||||
HdmiCecMessage response3 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_3);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_3);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected3);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response3);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected4 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_4.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_4 = new byte[]{
|
||||
0x2C, 0x18, 0x4A,
|
||||
0x2D, 0x64, 0x5A,
|
||||
0x2E, 0x4B, 0x00};
|
||||
HdmiCecMessage response4 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_4);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_4);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected4);
|
||||
action.processCommand(response4);
|
||||
mTestLooper.dispatchAll();
|
||||
@@ -489,8 +461,7 @@ public class RequestSadActionTest {
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected1 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_1.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_1 = new byte[]{
|
||||
0x01, 0x18,
|
||||
@@ -498,8 +469,7 @@ public class RequestSadActionTest {
|
||||
0x03, 0x4B, 0x00,
|
||||
0x04, 0x20, 0x0A};
|
||||
HdmiCecMessage response1 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_1);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_1);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected1);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response1);
|
||||
@@ -512,8 +482,7 @@ public class RequestSadActionTest {
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected2 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_2.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_2 = new byte[]{
|
||||
0x05, 0x18, 0x4A,
|
||||
@@ -521,8 +490,7 @@ public class RequestSadActionTest {
|
||||
0x07,
|
||||
0x08, 0x20, 0x0A};
|
||||
HdmiCecMessage response2 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_2);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_2);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected2);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response2);
|
||||
@@ -535,13 +503,11 @@ public class RequestSadActionTest {
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected3 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_3.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_3 = new byte[0];
|
||||
HdmiCecMessage response3 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_3);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_3);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected3);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response3);
|
||||
@@ -554,16 +520,14 @@ public class RequestSadActionTest {
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected4 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
CODECS_TO_QUERY_4.stream().mapToInt(i -> i).toArray());
|
||||
byte[] sadsToRespond_4 = new byte[]{
|
||||
0x0D, 0x18, 0x4A,
|
||||
0x0E, 0x64, 0x5A,
|
||||
0x0F, 0x4B};
|
||||
HdmiCecMessage response4 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM,
|
||||
mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), sadsToRespond_4);
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_4);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected4);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response4);
|
||||
@@ -576,4 +540,77 @@ public class RequestSadActionTest {
|
||||
|
||||
assertThat(mSupportedSads.size()).isEqualTo(0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void selectedSads_allSupported_completeResult() {
|
||||
mHdmiControlService.getHdmiCecConfig().setIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_MPEG1,
|
||||
HdmiControlManager.QUERY_SAD_DISABLED);
|
||||
mHdmiControlService.getHdmiCecConfig().setIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_ONEBITAUDIO,
|
||||
HdmiControlManager.QUERY_SAD_DISABLED);
|
||||
mHdmiControlService.getHdmiCecConfig().setIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_QUERY_SAD_WMAPRO,
|
||||
HdmiControlManager.QUERY_SAD_DISABLED);
|
||||
RequestSadAction action = new RequestSadAction(mHdmiCecLocalDeviceTv, ADDR_AUDIO_SYSTEM,
|
||||
mCallback);
|
||||
action.start();
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected1 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
new int[]{Constants.AUDIO_CODEC_LPCM, Constants.AUDIO_CODEC_DD,
|
||||
Constants.AUDIO_CODEC_MP3, Constants.AUDIO_CODEC_MPEG2});
|
||||
byte[] sadsToRespond_1 = new byte[]{
|
||||
0x01, 0x18, 0x4A,
|
||||
0x02, 0x64, 0x5A,
|
||||
0x04, 0x20, 0x0A,
|
||||
0x05, 0x18, 0x4A};
|
||||
HdmiCecMessage response1 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_1);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected1);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response1);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected2 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
new int[]{Constants.AUDIO_CODEC_AAC, Constants.AUDIO_CODEC_DTS,
|
||||
Constants.AUDIO_CODEC_ATRAC, Constants.AUDIO_CODEC_DDP});
|
||||
byte[] sadsToRespond_2 = new byte[]{
|
||||
0x06, 0x64, 0x5A,
|
||||
0x07, 0x4B, 0x00,
|
||||
0x08, 0x20, 0x0A,
|
||||
0x09, 0x18, 0x4A};
|
||||
HdmiCecMessage response2 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_2);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected2);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response2);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage expected3 = HdmiCecMessageBuilder.buildRequestShortAudioDescriptor(
|
||||
mTvLogicalAddress, Constants.ADDR_AUDIO_SYSTEM,
|
||||
new int[]{Constants.AUDIO_CODEC_DTSHD, Constants.AUDIO_CODEC_TRUEHD,
|
||||
Constants.AUDIO_CODEC_DST, Constants.AUDIO_CODEC_MAX});
|
||||
byte[] sadsToRespond_3 = new byte[]{
|
||||
0x0B, 0x4B, 0x00,
|
||||
0x0C, 0x20, 0x0A,
|
||||
0x0D, 0x18, 0x4A,
|
||||
0x0F, 0x4B, 0x00};
|
||||
HdmiCecMessage response3 = HdmiCecMessageBuilder.buildReportShortAudioDescriptor(
|
||||
Constants.ADDR_AUDIO_SYSTEM, mTvLogicalAddress, sadsToRespond_3);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(expected3);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
action.processCommand(response3);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
assertThat(mSupportedSads.size()).isEqualTo(12);
|
||||
assertThat(Arrays.equals(sadsToRespond_1,
|
||||
concatenateSads(mSupportedSads.subList(0, 4)))).isTrue();
|
||||
assertThat(Arrays.equals(sadsToRespond_2,
|
||||
concatenateSads(mSupportedSads.subList(4, 8)))).isTrue();
|
||||
assertThat(Arrays.equals(sadsToRespond_3,
|
||||
concatenateSads(mSupportedSads.subList(8, 12)))).isTrue();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user