Loading core/java/android/hardware/hdmi/HdmiControlServiceWrapper.java +20 −0 Original line number Diff line number Diff line Loading @@ -294,6 +294,16 @@ public final class HdmiControlServiceWrapper { HdmiControlServiceWrapper.this.removeHdmiCecVolumeControlFeatureListener(listener); } @Override public int getMessageHistorySize() { return HdmiControlServiceWrapper.this.getMessageHistorySize(); } @Override public boolean setMessageHistorySize(int newSize) { return HdmiControlServiceWrapper.this.setMessageHistorySize(newSize); } @Override public void addCecSettingChangeListener(String name, IHdmiCecSettingChangeListener listener) { Loading Loading @@ -522,6 +532,16 @@ public final class HdmiControlServiceWrapper { public void removeHdmiCecVolumeControlFeatureListener( IHdmiCecVolumeControlFeatureListener listener) {} /** @hide */ public int getMessageHistorySize() { return 0; } /** @hide */ public boolean setMessageHistorySize(int newSize) { return true; } /** @hide */ public void addCecSettingChangeListener(String name, IHdmiCecSettingChangeListener listener) {} Loading core/java/android/hardware/hdmi/IHdmiControlService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,8 @@ interface IHdmiControlService { void setStandbyMode(boolean isStandbyModeOn); void reportAudioStatus(int deviceType, int volume, int maxVolume, boolean isMute); void setSystemAudioModeOnForAudioOnlySource(); boolean setMessageHistorySize(int newSize); int getMessageHistorySize(); void addCecSettingChangeListener(String name, IHdmiCecSettingChangeListener listener); void removeCecSettingChangeListener(String name, IHdmiCecSettingChangeListener listener); List<String> getUserCecSettings(); Loading core/tests/hdmitests/src/android/hardware/hdmi/HdmiAudioSystemClientTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -375,6 +375,17 @@ public class HdmiAudioSystemClientTest { IHdmiCecVolumeControlFeatureListener listener) { } @Override public int getMessageHistorySize() { return 0; } @Override public boolean setMessageHistorySize(int newSize) { return true; } @Override public List<String> getUserCecSettings() { return new ArrayList<>(); Loading services/core/java/com/android/server/hdmi/HdmiCecController.java +35 −6 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ final class HdmiCecController { private static final int MAX_DEDICATED_ADDRESS = 11; private static final int MAX_HDMI_MESSAGE_HISTORY = 250; private static final int INITIAL_HDMI_MESSAGE_HISTORY_SIZE = 250; private static final int INVALID_PHYSICAL_ADDRESS = 0xFFFF; Loading Loading @@ -138,8 +138,10 @@ final class HdmiCecController { private final HdmiControlService mService; // Stores recent CEC messages and HDMI Hotplug event history for debugging purpose. private final ArrayBlockingQueue<Dumpable> mMessageHistory = new ArrayBlockingQueue<>(MAX_HDMI_MESSAGE_HISTORY); private ArrayBlockingQueue<Dumpable> mMessageHistory = new ArrayBlockingQueue<>(INITIAL_HDMI_MESSAGE_HISTORY_SIZE); private final Object mMessageHistoryLock = new Object(); private final NativeWrapper mNativeWrapperImpl; Loading Loading @@ -750,11 +752,38 @@ final class HdmiCecController { } private void addEventToHistory(Dumpable event) { synchronized (mMessageHistoryLock) { if (!mMessageHistory.offer(event)) { mMessageHistory.poll(); mMessageHistory.offer(event); } } } int getMessageHistorySize() { synchronized (mMessageHistoryLock) { return mMessageHistory.size() + mMessageHistory.remainingCapacity(); } } boolean setMessageHistorySize(int newSize) { if (newSize < INITIAL_HDMI_MESSAGE_HISTORY_SIZE) { return false; } ArrayBlockingQueue<Dumpable> newMessageHistory = new ArrayBlockingQueue<>(newSize); synchronized (mMessageHistoryLock) { if (newSize < mMessageHistory.size()) { for (int i = 0; i < mMessageHistory.size() - newSize; i++) { mMessageHistory.poll(); } } newMessageHistory.addAll(mMessageHistory); mMessageHistory = newMessageHistory; } return true; } void dump(final IndentingPrintWriter pw) { pw.println("CEC message history:"); Loading services/core/java/com/android/server/hdmi/HdmiControlService.java +19 −0 Original line number Diff line number Diff line Loading @@ -2365,6 +2365,25 @@ public class HdmiControlService extends SystemService { } } @Override public boolean setMessageHistorySize(int newSize) { enforceAccessPermission(); if (mCecController == null) { return false; } return mCecController.setMessageHistorySize(newSize); } @Override public int getMessageHistorySize() { enforceAccessPermission(); if (mCecController != null) { return mCecController.getMessageHistorySize(); } else { return 0; } } @Override public void addCecSettingChangeListener(String name, final IHdmiCecSettingChangeListener listener) { Loading Loading
core/java/android/hardware/hdmi/HdmiControlServiceWrapper.java +20 −0 Original line number Diff line number Diff line Loading @@ -294,6 +294,16 @@ public final class HdmiControlServiceWrapper { HdmiControlServiceWrapper.this.removeHdmiCecVolumeControlFeatureListener(listener); } @Override public int getMessageHistorySize() { return HdmiControlServiceWrapper.this.getMessageHistorySize(); } @Override public boolean setMessageHistorySize(int newSize) { return HdmiControlServiceWrapper.this.setMessageHistorySize(newSize); } @Override public void addCecSettingChangeListener(String name, IHdmiCecSettingChangeListener listener) { Loading Loading @@ -522,6 +532,16 @@ public final class HdmiControlServiceWrapper { public void removeHdmiCecVolumeControlFeatureListener( IHdmiCecVolumeControlFeatureListener listener) {} /** @hide */ public int getMessageHistorySize() { return 0; } /** @hide */ public boolean setMessageHistorySize(int newSize) { return true; } /** @hide */ public void addCecSettingChangeListener(String name, IHdmiCecSettingChangeListener listener) {} Loading
core/java/android/hardware/hdmi/IHdmiControlService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,8 @@ interface IHdmiControlService { void setStandbyMode(boolean isStandbyModeOn); void reportAudioStatus(int deviceType, int volume, int maxVolume, boolean isMute); void setSystemAudioModeOnForAudioOnlySource(); boolean setMessageHistorySize(int newSize); int getMessageHistorySize(); void addCecSettingChangeListener(String name, IHdmiCecSettingChangeListener listener); void removeCecSettingChangeListener(String name, IHdmiCecSettingChangeListener listener); List<String> getUserCecSettings(); Loading
core/tests/hdmitests/src/android/hardware/hdmi/HdmiAudioSystemClientTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -375,6 +375,17 @@ public class HdmiAudioSystemClientTest { IHdmiCecVolumeControlFeatureListener listener) { } @Override public int getMessageHistorySize() { return 0; } @Override public boolean setMessageHistorySize(int newSize) { return true; } @Override public List<String> getUserCecSettings() { return new ArrayList<>(); Loading
services/core/java/com/android/server/hdmi/HdmiCecController.java +35 −6 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ final class HdmiCecController { private static final int MAX_DEDICATED_ADDRESS = 11; private static final int MAX_HDMI_MESSAGE_HISTORY = 250; private static final int INITIAL_HDMI_MESSAGE_HISTORY_SIZE = 250; private static final int INVALID_PHYSICAL_ADDRESS = 0xFFFF; Loading Loading @@ -138,8 +138,10 @@ final class HdmiCecController { private final HdmiControlService mService; // Stores recent CEC messages and HDMI Hotplug event history for debugging purpose. private final ArrayBlockingQueue<Dumpable> mMessageHistory = new ArrayBlockingQueue<>(MAX_HDMI_MESSAGE_HISTORY); private ArrayBlockingQueue<Dumpable> mMessageHistory = new ArrayBlockingQueue<>(INITIAL_HDMI_MESSAGE_HISTORY_SIZE); private final Object mMessageHistoryLock = new Object(); private final NativeWrapper mNativeWrapperImpl; Loading Loading @@ -750,11 +752,38 @@ final class HdmiCecController { } private void addEventToHistory(Dumpable event) { synchronized (mMessageHistoryLock) { if (!mMessageHistory.offer(event)) { mMessageHistory.poll(); mMessageHistory.offer(event); } } } int getMessageHistorySize() { synchronized (mMessageHistoryLock) { return mMessageHistory.size() + mMessageHistory.remainingCapacity(); } } boolean setMessageHistorySize(int newSize) { if (newSize < INITIAL_HDMI_MESSAGE_HISTORY_SIZE) { return false; } ArrayBlockingQueue<Dumpable> newMessageHistory = new ArrayBlockingQueue<>(newSize); synchronized (mMessageHistoryLock) { if (newSize < mMessageHistory.size()) { for (int i = 0; i < mMessageHistory.size() - newSize; i++) { mMessageHistory.poll(); } } newMessageHistory.addAll(mMessageHistory); mMessageHistory = newMessageHistory; } return true; } void dump(final IndentingPrintWriter pw) { pw.println("CEC message history:"); Loading
services/core/java/com/android/server/hdmi/HdmiControlService.java +19 −0 Original line number Diff line number Diff line Loading @@ -2365,6 +2365,25 @@ public class HdmiControlService extends SystemService { } } @Override public boolean setMessageHistorySize(int newSize) { enforceAccessPermission(); if (mCecController == null) { return false; } return mCecController.setMessageHistorySize(newSize); } @Override public int getMessageHistorySize() { enforceAccessPermission(); if (mCecController != null) { return mCecController.getMessageHistorySize(); } else { return 0; } } @Override public void addCecSettingChangeListener(String name, final IHdmiCecSettingChangeListener listener) { Loading