CEC: Add CEC device upon receiving <Report Physical Address>
Help devices be processed sooner when new device detection operation takes longer than usual. Bug: 19181472 Change-Id: I96c29081a9c7c9f73ebcd027ed9d18056dc89bf9
This commit is contained in:
@@ -580,6 +580,12 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
|
||||
if (!isInDeviceList(address, path)) {
|
||||
handleNewDeviceAtTheTailOfActivePath(path);
|
||||
}
|
||||
|
||||
// Add the device ahead with default information to handle <Active Source>
|
||||
// promptly, rather than waiting till the new device action is finished.
|
||||
HdmiDeviceInfo deviceInfo = new HdmiDeviceInfo(address, path, getPortId(path), type,
|
||||
Constants.UNKNOWN_VENDOR_ID, HdmiUtils.getDefaultDeviceName(address));
|
||||
addCecDevice(deviceInfo);
|
||||
startNewDeviceAction(ActiveSource.of(address, path), type);
|
||||
return true;
|
||||
}
|
||||
@@ -1465,7 +1471,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
|
||||
* @return true if exist; otherwise false
|
||||
*/
|
||||
@ServiceThreadOnly
|
||||
private boolean isInDeviceList(int logicalAddress, int physicalAddress) {
|
||||
boolean isInDeviceList(int logicalAddress, int physicalAddress) {
|
||||
assertRunOnServiceThread();
|
||||
HdmiDeviceInfo device = getCecDeviceInfo(logicalAddress);
|
||||
if (device == null) {
|
||||
|
||||
@@ -163,6 +163,12 @@ final class NewDeviceAction extends HdmiCecFeatureAction {
|
||||
}
|
||||
|
||||
private void addDeviceInfo() {
|
||||
// The device should be in the device list with default information.
|
||||
if (!tv().isInDeviceList(mDeviceLogicalAddress, mDevicePhysicalAddress)) {
|
||||
Slog.w(TAG, String.format("Device not found (%02x, %04x)",
|
||||
mDeviceLogicalAddress, mDevicePhysicalAddress));
|
||||
return;
|
||||
}
|
||||
if (mDisplayName == null) {
|
||||
mDisplayName = HdmiUtils.getDefaultDeviceName(mDeviceLogicalAddress);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user