Loading services/core/java/com/android/server/hdmi/DeviceSelectAction.java +4 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,10 @@ final class DeviceSelectAction extends HdmiCecFeatureAction { } private void sendSetStreamPath() { // Turn the active source invalidated, which remains so till <Active Source> comes from // the selected device. tv().getActiveSource().invalidate(); tv().setActivePath(mTarget.getPhysicalAddress()); sendCommand(HdmiCecMessageBuilder.buildSetStreamPath( getSourceAddress(), mTarget.getPhysicalAddress())); invokeCallback(HdmiControlManager.RESULT_SUCCESS); Loading services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java +18 −5 Original line number Diff line number Diff line Loading @@ -350,13 +350,26 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { if (!action.isEmpty()) { action.get(0).processKeyEvent(keyCode, isPressed); } else { if (isPressed && getActiveSource().isValid()) { int logicalAddress = getActiveSource().logicalAddress; if (isPressed) { int logicalAddress = findKeyReceiverAddress(); if (logicalAddress != Constants.ADDR_INVALID) { addAndStartAction(new SendKeyAction(this, logicalAddress, keyCode)); } else { return; } } Slog.w(TAG, "Discard key event: " + keyCode + " pressed:" + isPressed); } } private int findKeyReceiverAddress() { if (getActiveSource().isValid()) { return getActiveSource().logicalAddress; } HdmiDeviceInfo info = getDeviceInfoByPath(getActivePath()); if (info != null) { return info.getLogicalAddress(); } return Constants.ADDR_INVALID; } private static void invokeCallback(IHdmiControlCallback callback, int result) { Loading Loading
services/core/java/com/android/server/hdmi/DeviceSelectAction.java +4 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,10 @@ final class DeviceSelectAction extends HdmiCecFeatureAction { } private void sendSetStreamPath() { // Turn the active source invalidated, which remains so till <Active Source> comes from // the selected device. tv().getActiveSource().invalidate(); tv().setActivePath(mTarget.getPhysicalAddress()); sendCommand(HdmiCecMessageBuilder.buildSetStreamPath( getSourceAddress(), mTarget.getPhysicalAddress())); invokeCallback(HdmiControlManager.RESULT_SUCCESS); Loading
services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java +18 −5 Original line number Diff line number Diff line Loading @@ -350,13 +350,26 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { if (!action.isEmpty()) { action.get(0).processKeyEvent(keyCode, isPressed); } else { if (isPressed && getActiveSource().isValid()) { int logicalAddress = getActiveSource().logicalAddress; if (isPressed) { int logicalAddress = findKeyReceiverAddress(); if (logicalAddress != Constants.ADDR_INVALID) { addAndStartAction(new SendKeyAction(this, logicalAddress, keyCode)); } else { return; } } Slog.w(TAG, "Discard key event: " + keyCode + " pressed:" + isPressed); } } private int findKeyReceiverAddress() { if (getActiveSource().isValid()) { return getActiveSource().logicalAddress; } HdmiDeviceInfo info = getDeviceInfoByPath(getActivePath()); if (info != null) { return info.getLogicalAddress(); } return Constants.ADDR_INVALID; } private static void invokeCallback(IHdmiControlCallback callback, int result) { Loading