summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorMichal Olech <molech@google.com>2021-01-21 16:25:16 +0100
committerMichal Olech <molech@google.com>2021-01-27 13:24:08 +0000
commitdc2e424cdda051da90811c540e1613ec84830079 (patch)
tree9917affe274f54a5bb3fce030fa7a591a075252a /core/java
parentc8d8b7cd9c13d189f905d89212eaa78dd629546c (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.java78
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 &lt;Standby&gt; on sleep.
+ /**
+ * Sending &lt;Standby&gt; on sleep.
+ *
+ * @hide
+ */
+ public static final int TV_SEND_STANDBY_ON_SLEEP_ENABLED = 1;
+ /**
+ * Not sending &lt;Standby&gt; 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 &lt;Standby&gt; 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 &lt;Standby&gt; 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();
+ }
+ }
}