diff options
| author | 2015-01-06 04:12:50 +0000 | |
|---|---|---|
| committer | 2015-01-06 04:12:50 +0000 | |
| commit | 30a061ed4ffb7360d55b610566ce47b57c058543 (patch) | |
| tree | 3be7fd39017806c26e50ca7251657eb2f0ec90ab | |
| parent | 7dd1f66bb66ac9a6f6dbf2bcc2c4548b9d123491 (diff) | |
| parent | e96f9dd1a43e401ae3a73ac2b32bac6b6da2fe23 (diff) | |
am e96f9dd1: am b0b4921b: Merge "CEC: Make deviceSelect work for MHL device" into lmp-mr1-dev
* commit 'e96f9dd1a43e401ae3a73ac2b32bac6b6da2fe23':
CEC: Make deviceSelect work for MHL device
| -rw-r--r-- | services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java | 8 | ||||
| -rw-r--r-- | services/core/java/com/android/server/hdmi/HdmiControlService.java | 10 |
2 files changed, 16 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java index ed7cebbc1b03..90dbd1765200 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java @@ -326,8 +326,12 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { ActiveSource activeSource = getActiveSource(); HdmiDeviceInfo info = getCecDeviceInfo(activeSource.logicalAddress); if (info == null) { - info = new HdmiDeviceInfo(Constants.ADDR_INVALID, path, getActivePortId(), - HdmiDeviceInfo.DEVICE_RESERVED, 0, null); + info = mService.getDeviceInfoByPort(getActivePortId()); + if (info == null) { + // No CEC/MHL device is present at the port. Attempt to switch to + // the hardware port itself for non-CEC devices that may be connected. + info = new HdmiDeviceInfo(path, getActivePortId()); + } } mService.invokeInputChangeListener(info); } diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index 8ce6caf30c84..e8cb7204e5f6 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -672,6 +672,16 @@ public final class HdmiControlService extends SystemService { return tv() == null ? null : tv().getCecDeviceInfo(logicalAddress); } + @ServiceThreadOnly + HdmiDeviceInfo getDeviceInfoByPort(int port) { + assertRunOnServiceThread(); + HdmiMhlLocalDeviceStub info = mMhlController.getLocalDevice(port); + if (info != null) { + return info.getInfo(); + } + return null; + } + /** * Returns version of CEC. */ |