summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/hardware/hdmi/HdmiDeviceInfo.java83
-rw-r--r--core/java/android/hardware/hdmi/IHdmiControlService.aidl2
-rw-r--r--media/java/android/media/tv/ITvInputServiceCallback.aidl2
-rw-r--r--media/java/android/media/tv/TvInputInfo.java6
-rw-r--r--media/java/android/media/tv/TvInputService.java8
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java81
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiControlService.java6
-rw-r--r--services/core/java/com/android/server/hdmi/HotplugDetectionAction.java2
-rw-r--r--services/core/java/com/android/server/tv/TvInputHardwareManager.java10
-rw-r--r--services/core/java/com/android/server/tv/TvInputManagerService.java4
10 files changed, 128 insertions, 76 deletions
diff --git a/core/java/android/hardware/hdmi/HdmiDeviceInfo.java b/core/java/android/hardware/hdmi/HdmiDeviceInfo.java
index 2391d3a646ad..97da3a2f16b0 100644
--- a/core/java/android/hardware/hdmi/HdmiDeviceInfo.java
+++ b/core/java/android/hardware/hdmi/HdmiDeviceInfo.java
@@ -77,11 +77,18 @@ public class HdmiDeviceInfo implements Parcelable {
/** Invalid port ID */
public static final int PORT_INVALID = -1;
- private static final int HDMI_DEVICE_TYPE_OTHER = 0;
- private static final int HDMI_DEVICE_TYPE_CEC = 1;
- private static final int HDMI_DEVICE_TYPE_MHL = 2;
+ private static final int HDMI_DEVICE_TYPE_CEC = 0;
+ private static final int HDMI_DEVICE_TYPE_MHL = 1;
+ private static final int HDMI_DEVICE_TYPE_HARDWARE = 2;
+
+ // Offset used for id value. MHL devices, for instance, will be assigned the value from
+ // ID_OFFSET_MHL.
+ private static final int ID_OFFSET_CEC = 0x0;
+ private static final int ID_OFFSET_MHL = 0x80;
+ private static final int ID_OFFSET_HARDWARE = 0xC0;
// Common parameters for all device.
+ private final int mId;
private final int mHdmiDeviceType;
private final int mPhysicalAddress;
private final int mPortId;
@@ -121,7 +128,7 @@ public class HdmiDeviceInfo implements Parcelable {
int deviceId = source.readInt();
int adopterId = source.readInt();
return new HdmiDeviceInfo(physicalAddress, portId, adopterId, deviceId);
- case HDMI_DEVICE_TYPE_OTHER:
+ case HDMI_DEVICE_TYPE_HARDWARE:
return new HdmiDeviceInfo(physicalAddress, portId);
default:
return null;
@@ -152,6 +159,7 @@ public class HdmiDeviceInfo implements Parcelable {
mPhysicalAddress = physicalAddress;
mPortId = portId;
+ mId = idForCecDevice(logicalAddress);
mLogicalAddress = logicalAddress;
mDeviceType = deviceType;
mVendorId = vendorId;
@@ -180,17 +188,18 @@ public class HdmiDeviceInfo implements Parcelable {
}
/**
- * Constructor. Used to initialize the instance for other device.
+ * Constructor. Used to initialize the instance for device representing hardware port.
*
- * @param physicalAddress physical address of HDMI device
+ * @param physicalAddress physical address of the port
* @param portId HDMI port ID (1 for HDMI1)
* @hide
*/
public HdmiDeviceInfo(int physicalAddress, int portId) {
- mHdmiDeviceType = HDMI_DEVICE_TYPE_OTHER;
+ mHdmiDeviceType = HDMI_DEVICE_TYPE_HARDWARE;
mPhysicalAddress = physicalAddress;
mPortId = portId;
+ mId = idForHardware(portId);
mLogicalAddress = -1;
mDeviceType = DEVICE_RESERVED;
mVendorId = 0;
@@ -216,6 +225,7 @@ public class HdmiDeviceInfo implements Parcelable {
mPhysicalAddress = physicalAddress;
mPortId = portId;
+ mId = idForMhlDevice(portId);
mLogicalAddress = -1;
mDeviceType = DEVICE_RESERVED;
mVendorId = 0;
@@ -227,6 +237,45 @@ public class HdmiDeviceInfo implements Parcelable {
}
/**
+ * Return the id of the device.
+ */
+ public int getId() {
+ return mId;
+ }
+
+ /**
+ * Return the id to be used for CEC device.
+ *
+ * @param address logical address of CEC device
+ * @return id for CEC device
+ */
+ public static int idForCecDevice(int address) {
+ // The id is generated based on the logical address.
+ return ID_OFFSET_CEC + address;
+ }
+
+ /**
+ * Return the id to be used for MHL device.
+ *
+ * @param portId port which the MHL device is connected to
+ * @return id for MHL device
+ */
+ public static int idForMhlDevice(int portId) {
+ // The id is generated based on the port id since there can be only one MHL device per port.
+ return ID_OFFSET_MHL + portId;
+ }
+
+ /**
+ * Return the id to be used for hardware port.
+ *
+ * @param portId port id
+ * @return id for hardware port
+ */
+ public static int idForHardware(int portId) {
+ return ID_OFFSET_HARDWARE + portId;
+ }
+
+ /**
* Return the CEC logical address of the device.
*/
public int getLogicalAddress() {
@@ -367,25 +416,25 @@ public class HdmiDeviceInfo implements Parcelable {
switch (mHdmiDeviceType) {
case HDMI_DEVICE_TYPE_CEC:
s.append("CEC: ");
- s.append("logical_address: ").append(mLogicalAddress).append(", ");
- s.append("device_type: ").append(mDeviceType).append(", ");
- s.append("vendor_id: ").append(mVendorId).append(", ");
- s.append("display_name: ").append(mDisplayName).append(", ");
- s.append("power_status: ").append(mDevicePowerStatus).append(", ");
+ s.append("logical_address: ").append(mLogicalAddress).append(" ");
+ s.append("device_type: ").append(mDeviceType).append(" ");
+ s.append("vendor_id: ").append(mVendorId).append(" ");
+ s.append("display_name: ").append(mDisplayName).append(" ");
+ s.append("power_status: ").append(mDevicePowerStatus).append(" ");
break;
case HDMI_DEVICE_TYPE_MHL:
s.append("MHL: ");
+ s.append("device_id: ").append(mDeviceId).append(" ");
+ s.append("adopter_id: ").append(mAdopterId).append(" ");
break;
- case HDMI_DEVICE_TYPE_OTHER:
- s.append("Other: ");
- s.append("device_id: ").append(mDeviceId).append(", ");
- s.append("adopter_id: ").append(mAdopterId).append(", ");
+ case HDMI_DEVICE_TYPE_HARDWARE:
+ s.append("Hardware: ");
break;
default:
return "";
}
- s.append("physical_address: ").append(mPhysicalAddress).append(", ");
+ s.append("physical_address: ").append(String.format("0x04X", mPhysicalAddress)).append(" ");
s.append("port_id: ").append(mPortId);
return s.toString();
}
diff --git a/core/java/android/hardware/hdmi/IHdmiControlService.aidl b/core/java/android/hardware/hdmi/IHdmiControlService.aidl
index 5422bc23c4cc..17f290bd3970 100644
--- a/core/java/android/hardware/hdmi/IHdmiControlService.aidl
+++ b/core/java/android/hardware/hdmi/IHdmiControlService.aidl
@@ -43,7 +43,7 @@ interface IHdmiControlService {
void addHotplugEventListener(IHdmiHotplugEventListener listener);
void removeHotplugEventListener(IHdmiHotplugEventListener listener);
void addDeviceEventListener(IHdmiDeviceEventListener listener);
- void deviceSelect(int logicalAddress, IHdmiControlCallback callback);
+ void deviceSelect(int deviceId, IHdmiControlCallback callback);
void portSelect(int portId, IHdmiControlCallback callback);
void sendKeyEvent(int deviceType, int keyCode, boolean isPressed);
List<HdmiPortInfo> getPortInfo();
diff --git a/media/java/android/media/tv/ITvInputServiceCallback.aidl b/media/java/android/media/tv/ITvInputServiceCallback.aidl
index de5d56f85f40..74ab56215ff2 100644
--- a/media/java/android/media/tv/ITvInputServiceCallback.aidl
+++ b/media/java/android/media/tv/ITvInputServiceCallback.aidl
@@ -25,6 +25,6 @@ import android.media.tv.TvInputInfo;
*/
oneway interface ITvInputServiceCallback {
void addHardwareTvInput(in int deviceId, in TvInputInfo inputInfo);
- void addHdmiTvInput(in int logicalAddress, in TvInputInfo inputInfo);
+ void addHdmiTvInput(in int id, in TvInputInfo inputInfo);
void removeTvInput(in String inputId);
}
diff --git a/media/java/android/media/tv/TvInputInfo.java b/media/java/android/media/tv/TvInputInfo.java
index ff4892b75bcb..6a7433dbe035 100644
--- a/media/java/android/media/tv/TvInputInfo.java
+++ b/media/java/android/media/tv/TvInputInfo.java
@@ -113,7 +113,7 @@ public final class TvInputInfo implements Parcelable {
private static final String PREFIX_HDMI_DEVICE = "HDMI";
private static final String PREFIX_HARDWARE_DEVICE = "HW";
private static final int LENGTH_HDMI_PHYSICAL_ADDRESS = 4;
- private static final int LENGTH_HDMI_LOGICAL_ADDRESS = 2;
+ private static final int LENGTH_HDMI_DEVICE_ID = 2;
private final ResolveInfo mService;
private final String mId;
@@ -537,9 +537,9 @@ public final class TvInputInfo implements Parcelable {
ComponentName name, HdmiDeviceInfo deviceInfo) {
// Example of the format : "/HDMI%04X%02X"
String format = String.format("%s%s%%0%sX%%0%sX", DELIMITER_INFO_IN_ID, PREFIX_HDMI_DEVICE,
- LENGTH_HDMI_PHYSICAL_ADDRESS, LENGTH_HDMI_LOGICAL_ADDRESS);
+ LENGTH_HDMI_PHYSICAL_ADDRESS, LENGTH_HDMI_DEVICE_ID);
return name.flattenToShortString() + String.format(format,
- deviceInfo.getPhysicalAddress(), deviceInfo.getLogicalAddress());
+ deviceInfo.getPhysicalAddress(), deviceInfo.getId());
}
/**
diff --git a/media/java/android/media/tv/TvInputService.java b/media/java/android/media/tv/TvInputService.java
index 8783648dfe1d..8ffe6cc8405a 100644
--- a/media/java/android/media/tv/TvInputService.java
+++ b/media/java/android/media/tv/TvInputService.java
@@ -213,7 +213,7 @@ public abstract class TvInputService extends Service {
}
/**
- * Returns the input ID for {@code logicalAddress} if it is handled by this service; otherwise,
+ * Returns the input ID for {@code deviceInfo} if it is handled by this service; otherwise,
* return {@code null}. Override to modify default behavior of ignoring all HDMI logical input
* device.
*
@@ -1178,11 +1178,11 @@ public abstract class TvInputService extends Service {
mCallbacks.finishBroadcast();
}
- private void broadcastAddHdmiTvInput(int logicalAddress, TvInputInfo inputInfo) {
+ private void broadcastAddHdmiTvInput(int id, TvInputInfo inputInfo) {
int n = mCallbacks.beginBroadcast();
for (int i = 0; i < n; ++i) {
try {
- mCallbacks.getBroadcastItem(i).addHdmiTvInput(logicalAddress, inputInfo);
+ mCallbacks.getBroadcastItem(i).addHdmiTvInput(id, inputInfo);
} catch (RemoteException e) {
Log.e(TAG, "Error while broadcasting.", e);
}
@@ -1289,7 +1289,7 @@ public abstract class TvInputService extends Service {
HdmiDeviceInfo deviceInfo = (HdmiDeviceInfo) msg.obj;
TvInputInfo inputInfo = onHdmiDeviceAdded(deviceInfo);
if (inputInfo != null) {
- broadcastAddHdmiTvInput(deviceInfo.getLogicalAddress(), inputInfo);
+ broadcastAddHdmiTvInput(deviceInfo.getId(), inputInfo);
}
return;
}
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
index 47b0794996f4..809fef42875c 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
@@ -100,7 +100,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
private List<HdmiDeviceInfo> mSafeExternalInputs = Collections.emptyList();
// Map-like container of all cec devices including local ones.
- // A logical address of device is used as key of container.
+ // device id is used as key of container.
// This is not thread-safe. For external purpose use mSafeDeviceInfos.
private final SparseArray<HdmiDeviceInfo> mDeviceInfos = new SparseArray<>();
@@ -167,12 +167,19 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
/**
* Performs the action 'device select', or 'one touch play' initiated by TV.
*
- * @param targetAddress logical address of the device to select
+ * @param id id of HDMI device to select
* @param callback callback object to report the result with
*/
@ServiceThreadOnly
- void deviceSelect(int targetAddress, IHdmiControlCallback callback) {
+ void deviceSelect(int id, IHdmiControlCallback callback) {
assertRunOnServiceThread();
+ HdmiDeviceInfo targetDevice = mDeviceInfos.get(id);
+ if (targetDevice == null) {
+ invokeCallback(callback, HdmiControlManager.RESULT_TARGET_NOT_AVAILABLE);
+ return;
+ }
+ // TODO: Handle MHL device
+ int targetAddress = targetDevice.getLogicalAddress();
ActiveSource active = getActiveSource();
if (active.isValid() && targetAddress == active.logicalAddress) {
invokeCallback(callback, HdmiControlManager.RESULT_SUCCESS);
@@ -187,18 +194,10 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
return;
}
if (!mService.isControlEnabled()) {
- HdmiDeviceInfo info = getDeviceInfo(targetAddress);
- if (info != null) {
- setActiveSource(info);
- }
+ setActiveSource(targetDevice);
invokeCallback(callback, HdmiControlManager.RESULT_INCORRECT_MODE);
return;
}
- HdmiDeviceInfo targetDevice = getDeviceInfo(targetAddress);
- if (targetDevice == null) {
- invokeCallback(callback, HdmiControlManager.RESULT_TARGET_NOT_AVAILABLE);
- return;
- }
removeAction(DeviceSelectAction.class);
addAndStartAction(new DeviceSelectAction(this, targetDevice, callback));
}
@@ -231,7 +230,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
}
setActiveSource(newActive);
int logicalAddress = newActive.logicalAddress;
- if (getDeviceInfo(logicalAddress) != null && logicalAddress != mAddress) {
+ if (getCecDeviceInfo(logicalAddress) != null && logicalAddress != mAddress) {
if (mService.pathToPortId(newActive.physicalAddress) == getActivePortId()) {
setPrevPortId(getActivePortId());
}
@@ -279,7 +278,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
// Show OSD port change banner
if (notifyInputChange) {
ActiveSource activeSource = getActiveSource();
- HdmiDeviceInfo info = getDeviceInfo(activeSource.logicalAddress);
+ HdmiDeviceInfo info = getCecDeviceInfo(activeSource.logicalAddress);
if (info == null) {
info = new HdmiDeviceInfo(Constants.ADDR_INVALID, path, portId,
HdmiDeviceInfo.DEVICE_RESERVED, 0, null);
@@ -363,7 +362,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
assertRunOnServiceThread();
int logicalAddress = message.getSource();
int physicalAddress = HdmiUtils.twoBytesToInt(message.getParams());
- if (getDeviceInfo(logicalAddress) == null) {
+ if (getCecDeviceInfo(logicalAddress) == null) {
handleNewDeviceAtTheTailOfActivePath(physicalAddress);
} else {
ActiveSource activeSource = ActiveSource.of(logicalAddress, physicalAddress);
@@ -389,7 +388,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
if (portId != Constants.INVALID_PORT_ID) {
// TODO: Do this only if TV is not showing multiview like PIP/PAP.
- HdmiDeviceInfo inactiveSource = getDeviceInfo(message.getSource());
+ HdmiDeviceInfo inactiveSource = getCecDeviceInfo(message.getSource());
if (inactiveSource == null) {
return true;
}
@@ -577,7 +576,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
@ServiceThreadOnly
protected boolean handleSetOsdName(HdmiCecMessage message) {
int source = message.getSource();
- HdmiDeviceInfo deviceInfo = getDeviceInfo(source);
+ HdmiDeviceInfo deviceInfo = getCecDeviceInfo(source);
// If the device is not in device list, ignore it.
if (deviceInfo == null) {
Slog.e(TAG, "No source device info for <Set Osd Name>." + message);
@@ -952,11 +951,11 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
@ServiceThreadOnly
private HdmiDeviceInfo addDeviceInfo(HdmiDeviceInfo deviceInfo) {
assertRunOnServiceThread();
- HdmiDeviceInfo oldDeviceInfo = getDeviceInfo(deviceInfo.getLogicalAddress());
+ HdmiDeviceInfo oldDeviceInfo = getCecDeviceInfo(deviceInfo.getLogicalAddress());
if (oldDeviceInfo != null) {
- removeDeviceInfo(deviceInfo.getLogicalAddress());
+ removeDeviceInfo(deviceInfo.getId());
}
- mDeviceInfos.append(deviceInfo.getLogicalAddress(), deviceInfo);
+ mDeviceInfos.append(deviceInfo.getId(), deviceInfo);
updateSafeDeviceInfoList();
return oldDeviceInfo;
}
@@ -967,15 +966,15 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
*
* <p>Declared as package-private. accessed by {@link HdmiControlService} only.
*
- * @param logicalAddress logical address of device to be removed
+ * @param id id of device to be removed
* @return removed {@link HdmiDeviceInfo} it exists. Otherwise, returns {@code null}
*/
@ServiceThreadOnly
- private HdmiDeviceInfo removeDeviceInfo(int logicalAddress) {
+ private HdmiDeviceInfo removeDeviceInfo(int id) {
assertRunOnServiceThread();
- HdmiDeviceInfo deviceInfo = mDeviceInfos.get(logicalAddress);
+ HdmiDeviceInfo deviceInfo = mDeviceInfos.get(id);
if (deviceInfo != null) {
- mDeviceInfos.remove(logicalAddress);
+ mDeviceInfos.remove(id);
}
updateSafeDeviceInfoList();
return deviceInfo;
@@ -1035,7 +1034,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
ArrayList<HdmiDeviceInfo> infoList = new ArrayList<>();
for (int i = 0; i < mDeviceInfos.size(); ++i) {
HdmiDeviceInfo info = mDeviceInfos.valueAt(i);
- if (isLocalDeviceAddress(i)) {
+ if (isLocalDeviceAddress(info.getLogicalAddress())) {
continue;
}
if (info.isSourceType() && !hideDevicesBehindLegacySwitch(info)) {
@@ -1095,23 +1094,22 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
@ServiceThreadOnly
HdmiDeviceInfo getAvrDeviceInfo() {
assertRunOnServiceThread();
- return getDeviceInfo(Constants.ADDR_AUDIO_SYSTEM);
+ return getCecDeviceInfo(Constants.ADDR_AUDIO_SYSTEM);
}
/**
* Return a {@link HdmiDeviceInfo} corresponding to the given {@code logicalAddress}.
*
- * <p>Declared as package-private. accessed by {@link HdmiControlService} only.
- * This is not thread-safe. For thread safety, call {@link #getSafeDeviceInfo(int)}.
+ * This is not thread-safe. For thread safety, call {@link #getSafeCecDeviceInfo(int)}.
*
- * @param logicalAddress logical address to be retrieved
+ * @param address logical address of the device to be retrieved
* @return {@link HdmiDeviceInfo} matched with the given {@code logicalAddress}.
* Returns null if no logical address matched
*/
@ServiceThreadOnly
- HdmiDeviceInfo getDeviceInfo(int logicalAddress) {
+ HdmiDeviceInfo getCecDeviceInfo(int logicalAddress) {
assertRunOnServiceThread();
- return mDeviceInfos.get(logicalAddress);
+ return mDeviceInfos.get(HdmiDeviceInfo.idForCecDevice(logicalAddress));
}
boolean hasSystemAudioDevice() {
@@ -1119,19 +1117,24 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
}
HdmiDeviceInfo getSafeAvrDeviceInfo() {
- return getSafeDeviceInfo(Constants.ADDR_AUDIO_SYSTEM);
+ return getSafeCecDeviceInfo(Constants.ADDR_AUDIO_SYSTEM);
}
/**
- * Thread safe version of {@link #getDeviceInfo(int)}.
+ * Thread safe version of {@link #getCecDeviceInfo(int)}.
*
* @param logicalAddress logical address to be retrieved
* @return {@link HdmiDeviceInfo} matched with the given {@code logicalAddress}.
* Returns null if no logical address matched
*/
- HdmiDeviceInfo getSafeDeviceInfo(int logicalAddress) {
+ HdmiDeviceInfo getSafeCecDeviceInfo(int logicalAddress) {
synchronized (mLock) {
- return mSafeAllDeviceInfos.get(logicalAddress);
+ for (HdmiDeviceInfo info : mSafeAllDeviceInfos) {
+ if (info.isCecDevice() && info.getLogicalAddress() == logicalAddress) {
+ return info;
+ }
+ }
+ return null;
}
}
@@ -1160,7 +1163,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
@ServiceThreadOnly
final void removeCecDevice(int address) {
assertRunOnServiceThread();
- HdmiDeviceInfo info = removeDeviceInfo(address);
+ HdmiDeviceInfo info = removeDeviceInfo(HdmiDeviceInfo.idForCecDevice(address));
mCecMessageCache.flushMessagesFrom(address);
invokeDeviceEventListener(info, HdmiControlManager.DEVICE_EVENT_REMOVE_DEVICE);
@@ -1240,7 +1243,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
@ServiceThreadOnly
boolean isInDeviceList(int logicalAddress, int physicalAddress) {
assertRunOnServiceThread();
- HdmiDeviceInfo device = getDeviceInfo(logicalAddress);
+ HdmiDeviceInfo device = getCecDeviceInfo(logicalAddress);
if (device == null) {
return false;
}
@@ -1427,7 +1430,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
}
private boolean checkRecorder(int recorderAddress) {
- HdmiDeviceInfo device = getDeviceInfo(recorderAddress);
+ HdmiDeviceInfo device = getCecDeviceInfo(recorderAddress);
return (device != null)
&& (HdmiUtils.getTypeFromAddress(recorderAddress)
== HdmiDeviceInfo.DEVICE_RECORDER);
@@ -1528,7 +1531,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
}
void updateDevicePowerStatus(int logicalAddress, int newPowerStatus) {
- HdmiDeviceInfo info = getDeviceInfo(logicalAddress);
+ HdmiDeviceInfo info = getCecDeviceInfo(logicalAddress);
if (info == null) {
Slog.w(TAG, "Can not update power status of non-existing device:" + logicalAddress);
return;
diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java
index 2818ea751d70..3ccdf0780637 100644
--- a/services/core/java/com/android/server/hdmi/HdmiControlService.java
+++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java
@@ -568,7 +568,7 @@ public final class HdmiControlService extends SystemService {
if (tv == null) {
return null;
}
- return tv.getDeviceInfo(logicalAddress);
+ return tv.getCecDeviceInfo(logicalAddress);
}
/**
@@ -949,7 +949,7 @@ public final class HdmiControlService extends SystemService {
}
@Override
- public void deviceSelect(final int logicalAddress, final IHdmiControlCallback callback) {
+ public void deviceSelect(final int deviceId, final IHdmiControlCallback callback) {
enforceAccessPermission();
runOnServiceThread(new Runnable() {
@Override
@@ -964,7 +964,7 @@ public final class HdmiControlService extends SystemService {
invokeCallback(callback, HdmiControlManager.RESULT_SOURCE_NOT_AVAILABLE);
return;
}
- tv.deviceSelect(logicalAddress, callback);
+ tv.deviceSelect(deviceId, callback);
}
});
}
diff --git a/services/core/java/com/android/server/hdmi/HotplugDetectionAction.java b/services/core/java/com/android/server/hdmi/HotplugDetectionAction.java
index 51e68b6c930c..722be713bdf6 100644
--- a/services/core/java/com/android/server/hdmi/HotplugDetectionAction.java
+++ b/services/core/java/com/android/server/hdmi/HotplugDetectionAction.java
@@ -207,7 +207,7 @@ final class HotplugDetectionAction extends HdmiCecFeatureAction {
}
private void mayChangeRoutingPath(int address) {
- HdmiDeviceInfo info = tv().getDeviceInfo(address);
+ HdmiDeviceInfo info = tv().getCecDeviceInfo(address);
if (info != null) {
tv().handleRemoveActiveRoutingPath(info.getPhysicalAddress());
}
diff --git a/services/core/java/com/android/server/tv/TvInputHardwareManager.java b/services/core/java/com/android/server/tv/TvInputHardwareManager.java
index 78ea6c9da508..ae9ae130a26f 100644
--- a/services/core/java/com/android/server/tv/TvInputHardwareManager.java
+++ b/services/core/java/com/android/server/tv/TvInputHardwareManager.java
@@ -285,7 +285,7 @@ class TvInputHardwareManager implements TvInputHal.Callback {
return -1;
}
- public void addHdmiTvInput(int logicalAddress, TvInputInfo info) {
+ public void addHdmiTvInput(int id, TvInputInfo info) {
if (info.getType() != TvInputInfo.TYPE_HDMI) {
throw new IllegalArgumentException("info (" + info + ") has non-HDMI type.");
}
@@ -295,13 +295,13 @@ class TvInputHardwareManager implements TvInputHal.Callback {
if (parentIndex < 0) {
throw new IllegalArgumentException("info (" + info + ") has invalid parentId.");
}
- String oldInputId = mHdmiInputIdMap.get(logicalAddress);
+ String oldInputId = mHdmiInputIdMap.get(id);
if (oldInputId != null) {
Slog.w(TAG, "Trying to override previous registration: old = "
- + mInputMap.get(oldInputId) + ":" + logicalAddress + ", new = "
- + info + ":" + logicalAddress);
+ + mInputMap.get(oldInputId) + ":" + id + ", new = "
+ + info + ":" + id);
}
- mHdmiInputIdMap.put(logicalAddress, info.getId());
+ mHdmiInputIdMap.put(id, info.getId());
mInputMap.put(info.getId(), info);
}
}
diff --git a/services/core/java/com/android/server/tv/TvInputManagerService.java b/services/core/java/com/android/server/tv/TvInputManagerService.java
index aa8c391567eb..88ce86016a0d 100644
--- a/services/core/java/com/android/server/tv/TvInputManagerService.java
+++ b/services/core/java/com/android/server/tv/TvInputManagerService.java
@@ -1962,11 +1962,11 @@ public final class TvInputManagerService extends SystemService {
}
@Override
- public void addHdmiTvInput(int logicalAddress, TvInputInfo inputInfo) {
+ public void addHdmiTvInput(int id, TvInputInfo inputInfo) {
ensureHardwarePermission();
ensureValidInput(inputInfo);
synchronized (mLock) {
- mTvInputHardwareManager.addHdmiTvInput(logicalAddress, inputInfo);
+ mTvInputHardwareManager.addHdmiTvInput(id, inputInfo);
addTvInputLocked(inputInfo);
}
}