diff options
| author | Michal Olech <molech@google.com> | 2021-01-21 16:25:16 +0100 |
|---|---|---|
| committer | Michal Olech <molech@google.com> | 2021-01-27 13:24:08 +0000 |
| commit | dc2e424cdda051da90811c540e1613ec84830079 (patch) | |
| tree | 9917affe274f54a5bb3fce030fa7a591a075252a /core/java | |
| parent | c8d8b7cd9c13d189f905d89212eaa78dd629546c (diff) | |
[CEC Configuration] Add 'tv_send_standby_on_sleep' option
This ports Settings.Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED to
HdmiCecConfig.
Bug: 166433775
Test: atest HdmiCecLocalDevicePlaybackTest HdmiCecLocalDeviceTvTest
Change-Id: I27fe562d7d15f7a049e41a060179bf0d2fafdf9c
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/hardware/hdmi/HdmiControlManager.java | 78 |
1 files changed, 77 insertions, 1 deletions
diff --git a/core/java/android/hardware/hdmi/HdmiControlManager.java b/core/java/android/hardware/hdmi/HdmiControlManager.java index 4ec3f926ed86..b90c72832d36 100644 --- a/core/java/android/hardware/hdmi/HdmiControlManager.java +++ b/core/java/android/hardware/hdmi/HdmiControlManager.java @@ -503,6 +503,29 @@ public final class HdmiControlManager { @Retention(RetentionPolicy.SOURCE) public @interface TvWakeOnOneTouchPlay {} + // -- Whether TV should send <Standby> on sleep. + /** + * Sending <Standby> on sleep. + * + * @hide + */ + public static final int TV_SEND_STANDBY_ON_SLEEP_ENABLED = 1; + /** + * Not sending <Standby> on sleep. + * + * @hide + */ + public static final int TV_SEND_STANDBY_ON_SLEEP_DISABLED = 0; + /** + * @hide + */ + @IntDef(prefix = { "TV_SEND_STANDBY_ON_SLEEP_" }, value = { + TV_SEND_STANDBY_ON_SLEEP_ENABLED, + TV_SEND_STANDBY_ON_SLEEP_DISABLED + }) + @Retention(RetentionPolicy.SOURCE) + public @interface TvSendStandbyOnSleep {} + // -- The RC profile of a TV panel. /** * RC profile none. @@ -747,6 +770,14 @@ public final class HdmiControlManager { public static final String CEC_SETTING_NAME_TV_WAKE_ON_ONE_TOUCH_PLAY = "tv_wake_on_one_touch_play"; /** + * Name of a setting deciding whether the device will also turn off other CEC devices + * when it goes to standby mode. + * + * @hide + */ + public static final String CEC_SETTING_NAME_TV_SEND_STANDBY_ON_SLEEP = + "tv_send_standby_on_sleep"; + /** * Name of a setting representing the RC profile of a TV panel. * * @hide @@ -805,12 +836,13 @@ public final class HdmiControlManager { CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING, CEC_SETTING_NAME_VOLUME_CONTROL_MODE, CEC_SETTING_NAME_TV_WAKE_ON_ONE_TOUCH_PLAY, + CEC_SETTING_NAME_TV_SEND_STANDBY_ON_SLEEP, CEC_SETTING_NAME_RC_PROFILE_TV, CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_ROOT_MENU, CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_SETUP_MENU, CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_CONTENTS_MENU, CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_TOP_MENU, - CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU + CEC_SETTING_NAME_RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU, }) public @interface CecSettingName {} @@ -2158,4 +2190,48 @@ public final class HdmiControlManager { throw e.rethrowFromSystemServer(); } } + + /** + * Set the current status of TV send <Standby> on Sleep. + * + * <p>Sets whether the device will also turn off other CEC devices + * when it goes to standby mode. + * + * @hide + */ + @RequiresPermission(android.Manifest.permission.HDMI_CEC) + public void setTvSendStandbyOnSleep(@NonNull @TvSendStandbyOnSleep int value) { + if (mService == null) { + Log.e(TAG, "HdmiControlService is not available"); + throw new RuntimeException("HdmiControlService is not available"); + } + try { + mService.setCecSettingIntValue(CEC_SETTING_NAME_TV_SEND_STANDBY_ON_SLEEP, value); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** + * Get the current status of TV send <Standby> on Sleep. + * + * <p>Reflects whether the device will also turn off other CEC devices + * when it goes to standby mode. + * + * @hide + */ + @NonNull + @TvSendStandbyOnSleep + @RequiresPermission(android.Manifest.permission.HDMI_CEC) + public int getTvSendStandbyOnSleep() { + if (mService == null) { + Log.e(TAG, "HdmiControlService is not available"); + throw new RuntimeException("HdmiControlService is not available"); + } + try { + return mService.getCecSettingIntValue(CEC_SETTING_NAME_TV_SEND_STANDBY_ON_SLEEP); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } } |
