diff options
22 files changed, 632 insertions, 379 deletions
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java index de65d76688f8..35090627cb2a 100755 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java @@ -68,7 +68,6 @@ abstract class HdmiCecLocalDevice { protected final HdmiControlService mService; protected final int mDeviceType; - protected int mAddress; protected int mPreferredAddress; @GuardedBy("mLock") protected HdmiDeviceInfo mDeviceInfo; @@ -187,7 +186,6 @@ abstract class HdmiCecLocalDevice { protected HdmiCecLocalDevice(HdmiControlService service, int deviceType) { mService = service; mDeviceType = deviceType; - mAddress = Constants.ADDR_UNREGISTERED; mLock = service.getServiceLock(); } @@ -254,7 +252,7 @@ abstract class HdmiCecLocalDevice { protected int dispatchMessage(HdmiCecMessage message) { assertRunOnServiceThread(); int dest = message.getDestination(); - if (dest != mAddress && dest != Constants.ADDR_BROADCAST) { + if (dest != mDeviceInfo.getLogicalAddress() && dest != Constants.ADDR_BROADCAST) { return Constants.NOT_HANDLED; } // Cache incoming message if it is included in the list of cacheable opcodes. @@ -388,7 +386,7 @@ abstract class HdmiCecLocalDevice { } else { HdmiCecMessage cecMessage = HdmiCecMessageBuilder.buildReportPhysicalAddressCommand( - mAddress, physicalAddress, mDeviceType); + mDeviceInfo.getLogicalAddress(), physicalAddress, mDeviceType); mService.sendCecCommand(cecMessage); } return Constants.HANDLED; @@ -403,7 +401,8 @@ abstract class HdmiCecLocalDevice { mService.maySendFeatureAbortCommand(message, Constants.ABORT_UNABLE_TO_DETERMINE); } else { HdmiCecMessage cecMessage = - HdmiCecMessageBuilder.buildDeviceVendorIdCommand(mAddress, vendorId); + HdmiCecMessageBuilder.buildDeviceVendorIdCommand( + mDeviceInfo.getLogicalAddress(), vendorId); mService.sendCecCommand(cecMessage); } return Constants.HANDLED; @@ -476,8 +475,8 @@ abstract class HdmiCecLocalDevice { protected void buildAndSendSetOsdName(int dest) { HdmiCecMessage cecMessage = - HdmiCecMessageBuilder.buildSetOsdNameCommand( - mAddress, dest, mDeviceInfo.getDisplayName()); + HdmiCecMessageBuilder.buildSetOsdNameCommand( + mDeviceInfo.getLogicalAddress(), dest, mDeviceInfo.getDisplayName()); if (cecMessage != null) { mService.sendCecCommand(cecMessage, new SendMessageCallback() { @Override @@ -525,7 +524,8 @@ abstract class HdmiCecLocalDevice { if (cecDeviceInfo != null && cecDeviceInfo.getDisplayName().equals( HdmiUtils.getDefaultDeviceName(address))) { mService.sendCecCommand( - HdmiCecMessageBuilder.buildGiveOsdNameCommand(mAddress, address)); + HdmiCecMessageBuilder.buildGiveOsdNameCommand( + mDeviceInfo.getLogicalAddress(), address)); } return Constants.HANDLED; @@ -630,8 +630,13 @@ abstract class HdmiCecLocalDevice { List<Integer> deviceFeatures = getDeviceFeatures(); mService.sendCecCommand( - HdmiCecMessageBuilder.buildReportFeatures(mAddress, mService.getCecVersion(), - localDeviceTypes, rcProfile, rcFeatures, deviceFeatures)); + HdmiCecMessageBuilder.buildReportFeatures( + mDeviceInfo.getLogicalAddress(), + mService.getCecVersion(), + localDeviceTypes, + rcProfile, + rcFeatures, + deviceFeatures)); } @ServiceThreadOnly @@ -793,7 +798,9 @@ abstract class HdmiCecLocalDevice { protected int handleGiveDevicePowerStatus(HdmiCecMessage message) { mService.sendCecCommand( HdmiCecMessageBuilder.buildReportPowerStatus( - mAddress, message.getSource(), mService.getPowerStatus())); + mDeviceInfo.getLogicalAddress(), + message.getSource(), + mService.getPowerStatus())); return Constants.HANDLED; } @@ -802,7 +809,9 @@ abstract class HdmiCecLocalDevice { // Always report menu active to receive Remote Control. mService.sendCecCommand( HdmiCecMessageBuilder.buildReportMenuStatus( - mAddress, message.getSource(), Constants.MENU_STATE_ACTIVATED)); + mDeviceInfo.getLogicalAddress(), + message.getSource(), + Constants.MENU_STATE_ACTIVATED)); return Constants.HANDLED; } @@ -884,7 +893,7 @@ abstract class HdmiCecLocalDevice { @ServiceThreadOnly final void handleAddressAllocated(int logicalAddress, int reason) { assertRunOnServiceThread(); - mAddress = mPreferredAddress = logicalAddress; + mPreferredAddress = logicalAddress; if (mService.getCecVersion() >= HdmiControlManager.HDMI_CEC_VERSION_2_0) { reportFeatures(); } @@ -914,14 +923,7 @@ abstract class HdmiCecLocalDevice { @ServiceThreadOnly boolean isAddressOf(int addr) { assertRunOnServiceThread(); - return addr == mAddress; - } - - // Resets the logical address to unregistered(15), meaning the logical device is invalid. - @ServiceThreadOnly - void clearAddress() { - assertRunOnServiceThread(); - mAddress = Constants.ADDR_UNREGISTERED; + return addr == mDeviceInfo.getLogicalAddress(); } @ServiceThreadOnly @@ -1184,7 +1186,8 @@ abstract class HdmiCecLocalDevice { } List<SendKeyAction> action = getActions(SendKeyAction.class); int logicalAddress = findKeyReceiverAddress(); - if (logicalAddress == Constants.ADDR_INVALID || logicalAddress == mAddress) { + if (logicalAddress == Constants.ADDR_INVALID + || logicalAddress == mDeviceInfo.getLogicalAddress()) { // Don't send key event to invalid device or itself. Slog.w( TAG, @@ -1222,7 +1225,8 @@ abstract class HdmiCecLocalDevice { } List<SendKeyAction> action = getActions(SendKeyAction.class); int logicalAddress = findAudioReceiverAddress(); - if (logicalAddress == Constants.ADDR_INVALID || logicalAddress == mAddress) { + if (logicalAddress == Constants.ADDR_INVALID + || logicalAddress == mDeviceInfo.getLogicalAddress()) { // Don't send key event to invalid device or itself. Slog.w( TAG, @@ -1276,9 +1280,11 @@ abstract class HdmiCecLocalDevice { void sendUserControlPressedAndReleased(int targetAddress, int cecKeycode) { mService.sendCecCommand( - HdmiCecMessageBuilder.buildUserControlPressed(mAddress, targetAddress, cecKeycode)); + HdmiCecMessageBuilder.buildUserControlPressed( + mDeviceInfo.getLogicalAddress(), targetAddress, cecKeycode)); mService.sendCecCommand( - HdmiCecMessageBuilder.buildUserControlReleased(mAddress, targetAddress)); + HdmiCecMessageBuilder.buildUserControlReleased( + mDeviceInfo.getLogicalAddress(), targetAddress)); } void addActiveSourceHistoryItem(ActiveSource activeSource, boolean isActiveSource, @@ -1298,7 +1304,6 @@ abstract class HdmiCecLocalDevice { /** Dump internal status of HdmiCecLocalDevice object. */ protected void dump(final IndentingPrintWriter pw) { pw.println("mDeviceType: " + mDeviceType); - pw.println("mAddress: " + mAddress); pw.println("mPreferredAddress: " + mPreferredAddress); pw.println("mDeviceInfo: " + mDeviceInfo); pw.println("mActiveSource: " + getActiveSource()); diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java index 93b0560aeb97..1fa6241e8b94 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java @@ -254,9 +254,12 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { } mService.sendCecCommand( HdmiCecMessageBuilder.buildReportPhysicalAddressCommand( - mAddress, mService.getPhysicalAddress(), mDeviceType)); + getDeviceInfo().getLogicalAddress(), + mService.getPhysicalAddress(), + mDeviceType)); mService.sendCecCommand( - HdmiCecMessageBuilder.buildDeviceVendorIdCommand(mAddress, mService.getVendorId())); + HdmiCecMessageBuilder.buildDeviceVendorIdCommand( + getDeviceInfo().getLogicalAddress(), mService.getVendorId())); mService.registerTvInputCallback(mTvInputCallback); // Some TVs, for example Mi TV, need ARC on before turning System Audio Mode on // to request Short Audio Descriptor. Since ARC and SAM are independent, @@ -406,7 +409,9 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { } mService.sendCecCommand( HdmiCecMessageBuilder.buildReportSystemAudioMode( - mAddress, message.getSource(), isSystemAudioModeOnOrTurningOn)); + getDeviceInfo().getLogicalAddress(), + message.getSource(), + isSystemAudioModeOnOrTurningOn)); return Constants.HANDLED; } @@ -488,7 +493,7 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { } else { mService.sendCecCommand( HdmiCecMessageBuilder.buildReportShortAudioDescriptor( - mAddress, message.getSource(), sadBytes)); + getDeviceInfo().getLogicalAddress(), message.getSource(), sadBytes)); return Constants.HANDLED; } } @@ -656,7 +661,9 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { mService.sendCecCommand( HdmiCecMessageBuilder.buildSetSystemAudioMode( - mAddress, Constants.ADDR_BROADCAST, systemAudioStatusOn)); + getDeviceInfo().getLogicalAddress(), + Constants.ADDR_BROADCAST, + systemAudioStatusOn)); if (systemAudioStatusOn) { // If TV sends out SAM Request with a path of a non-CEC device, which should not show @@ -754,7 +761,7 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { mService.sendCecCommand( HdmiCecMessageBuilder.buildReportAudioStatus( - mAddress, source, scaledVolume, mute)); + getDeviceInfo().getLogicalAddress(), source, scaledVolume, mute)); } /** @@ -908,7 +915,8 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { setRoutingPort(portId); setLocalActivePort(portId); HdmiCecMessage routingChange = - HdmiCecMessageBuilder.buildRoutingChange(mAddress, oldPath, newPath); + HdmiCecMessageBuilder.buildRoutingChange( + getDeviceInfo().getLogicalAddress(), oldPath, newPath); mService.sendCecCommand(routingChange); } @@ -933,7 +941,7 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { // send <Set System Audio Mode> [“Off”] mService.sendCecCommand( HdmiCecMessageBuilder.buildSetSystemAudioMode( - mAddress, Constants.ADDR_BROADCAST, false)); + getDeviceInfo().getLogicalAddress(), Constants.ADDR_BROADCAST, false)); } } @@ -981,7 +989,7 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { setSystemAudioMode(true); mService.sendCecCommand( HdmiCecMessageBuilder.buildSetSystemAudioMode( - mAddress, Constants.ADDR_BROADCAST, true)); + getDeviceInfo().getLogicalAddress(), Constants.ADDR_BROADCAST, true)); return Constants.HANDLED; } // Check if TV supports System Audio Control. @@ -992,7 +1000,9 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { setSystemAudioMode(true); mService.sendCecCommand( HdmiCecMessageBuilder.buildSetSystemAudioMode( - mAddress, Constants.ADDR_BROADCAST, true)); + getDeviceInfo().getLogicalAddress(), + Constants.ADDR_BROADCAST, + true)); } else { mService.maySendFeatureAbortCommand(message, Constants.ABORT_REFUSED); } @@ -1150,8 +1160,9 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { return; } // Otherwise will switch to the current active port and broadcast routing information. - mService.sendCecCommand(HdmiCecMessageBuilder.buildRoutingInformation( - mAddress, routingInformationPath)); + mService.sendCecCommand( + HdmiCecMessageBuilder.buildRoutingInformation( + getDeviceInfo().getLogicalAddress(), routingInformationPath)); routeToInputFromPortId(getRoutingPort()); } diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java index 1276aa31b320..4376c9a9d22b 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java @@ -75,10 +75,14 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { getDeviceInfo().getDeviceType(), Constants.ADDR_BROADCAST, "HdmiCecLocalDevicePlayback#onAddressAllocated()"); } - mService.sendCecCommand(HdmiCecMessageBuilder.buildReportPhysicalAddressCommand( - mAddress, mService.getPhysicalAddress(), mDeviceType)); - mService.sendCecCommand(HdmiCecMessageBuilder.buildDeviceVendorIdCommand( - mAddress, mService.getVendorId())); + mService.sendCecCommand( + HdmiCecMessageBuilder.buildReportPhysicalAddressCommand( + getDeviceInfo().getLogicalAddress(), + mService.getPhysicalAddress(), + mDeviceType)); + mService.sendCecCommand( + HdmiCecMessageBuilder.buildDeviceVendorIdCommand( + getDeviceInfo().getLogicalAddress(), mService.getVendorId())); // Actively send out an OSD name to the TV to update the TV panel in case the TV // does not query the OSD name on time. This is not a required behavior by the spec. // It is used for some TVs that need the OSD name update but don't query it themselves. @@ -87,8 +91,10 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { // If current device is not a functional audio system device, // send message to potential audio system device in the system to get the system // audio mode status. If no response, set to false. - mService.sendCecCommand(HdmiCecMessageBuilder.buildGiveSystemAudioModeStatus( - mAddress, Constants.ADDR_AUDIO_SYSTEM), new SendMessageCallback() { + mService.sendCecCommand( + HdmiCecMessageBuilder.buildGiveSystemAudioModeStatus( + getDeviceInfo().getLogicalAddress(), Constants.ADDR_AUDIO_SYSTEM), + new SendMessageCallback() { @Override public void onSendCompleted(int error) { if (error != SendMessageResult.SUCCESS) { @@ -144,8 +150,9 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { return; } if (initiatedByCec) { - mService.sendCecCommand(HdmiCecMessageBuilder.buildInactiveSource(mAddress, - mService.getPhysicalAddress())); + mService.sendCecCommand( + HdmiCecMessageBuilder.buildInactiveSource( + getDeviceInfo().getLogicalAddress(), mService.getPhysicalAddress())); return; } switch (standbyAction) { @@ -157,23 +164,28 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { switch (powerControlMode) { case HdmiControlManager.POWER_CONTROL_MODE_TV: mService.sendCecCommand( - HdmiCecMessageBuilder.buildStandby(mAddress, Constants.ADDR_TV)); + HdmiCecMessageBuilder.buildStandby( + getDeviceInfo().getLogicalAddress(), Constants.ADDR_TV)); break; case HdmiControlManager.POWER_CONTROL_MODE_TV_AND_AUDIO_SYSTEM: mService.sendCecCommand( - HdmiCecMessageBuilder.buildStandby(mAddress, Constants.ADDR_TV)); + HdmiCecMessageBuilder.buildStandby( + getDeviceInfo().getLogicalAddress(), Constants.ADDR_TV)); mService.sendCecCommand( - HdmiCecMessageBuilder.buildStandby(mAddress, + HdmiCecMessageBuilder.buildStandby( + getDeviceInfo().getLogicalAddress(), Constants.ADDR_AUDIO_SYSTEM)); break; case HdmiControlManager.POWER_CONTROL_MODE_BROADCAST: mService.sendCecCommand( - HdmiCecMessageBuilder.buildStandby(mAddress, + HdmiCecMessageBuilder.buildStandby( + getDeviceInfo().getLogicalAddress(), Constants.ADDR_BROADCAST)); break; case HdmiControlManager.POWER_CONTROL_MODE_NONE: mService.sendCecCommand( - HdmiCecMessageBuilder.buildInactiveSource(mAddress, + HdmiCecMessageBuilder.buildInactiveSource( + getDeviceInfo().getLogicalAddress(), mService.getPhysicalAddress())); break; } @@ -181,7 +193,8 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { case HdmiControlService.STANDBY_SHUTDOWN: // ACTION_SHUTDOWN is taken as a signal to power off all the devices. mService.sendCecCommand( - HdmiCecMessageBuilder.buildStandby(mAddress, Constants.ADDR_BROADCAST)); + HdmiCecMessageBuilder.buildStandby( + getDeviceInfo().getLogicalAddress(), Constants.ADDR_BROADCAST)); break; } } @@ -330,7 +343,7 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { protected int handleSystemAudioModeStatus(HdmiCecMessage message) { // Only directly addressed System Audio Mode Status message can change internal // system audio mode status. - if (message.getDestination() == mAddress + if (message.getDestination() == getDeviceInfo().getLogicalAddress() && message.getSource() == Constants.ADDR_AUDIO_SYSTEM) { boolean setSystemAudioModeOn = HdmiUtils.parseCommandParamSystemAudioStatus(message); if (mService.isSystemAudioActivated() != setSystemAudioModeOn) { diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceSource.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceSource.java index 0c7b3f685df4..d4fa1df9dda7 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceSource.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceSource.java @@ -111,13 +111,17 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice { HdmiControlManager.CEC_SETTING_NAME_POWER_CONTROL_MODE); if (powerControlMode.equals(HdmiControlManager.POWER_CONTROL_MODE_BROADCAST)) { mService.sendCecCommand( - HdmiCecMessageBuilder.buildStandby(mAddress, Constants.ADDR_BROADCAST)); + HdmiCecMessageBuilder.buildStandby( + getDeviceInfo().getLogicalAddress(), Constants.ADDR_BROADCAST)); return; } - mService.sendCecCommand(HdmiCecMessageBuilder.buildStandby(mAddress, Constants.ADDR_TV)); + mService.sendCecCommand( + HdmiCecMessageBuilder.buildStandby( + getDeviceInfo().getLogicalAddress(), Constants.ADDR_TV)); if (powerControlMode.equals(HdmiControlManager.POWER_CONTROL_MODE_TV_AND_AUDIO_SYSTEM)) { mService.sendCecCommand( - HdmiCecMessageBuilder.buildStandby(mAddress, Constants.ADDR_AUDIO_SYSTEM)); + HdmiCecMessageBuilder.buildStandby( + getDeviceInfo().getLogicalAddress(), Constants.ADDR_AUDIO_SYSTEM)); } } diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java index 1d099da18d12..b087507f5828 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java @@ -168,10 +168,14 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { mArcFeatureEnabled.put(port.getId(), port.isArcSupported()); } mService.registerTvInputCallback(mTvInputCallback); - mService.sendCecCommand(HdmiCecMessageBuilder.buildReportPhysicalAddressCommand( - mAddress, mService.getPhysicalAddress(), mDeviceType)); - mService.sendCecCommand(HdmiCecMessageBuilder.buildDeviceVendorIdCommand( - mAddress, mService.getVendorId())); + mService.sendCecCommand( + HdmiCecMessageBuilder.buildReportPhysicalAddressCommand( + getDeviceInfo().getLogicalAddress(), + mService.getPhysicalAddress(), + mDeviceType)); + mService.sendCecCommand( + HdmiCecMessageBuilder.buildDeviceVendorIdCommand( + getDeviceInfo().getLogicalAddress(), mService.getVendorId())); mService.getHdmiCecNetwork().addCecSwitch( mService.getHdmiCecNetwork().getPhysicalAddress()); // TV is a CEC switch too. mTvInputs.clear(); @@ -182,7 +186,9 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { launchDeviceDiscovery(); startQueuedActions(); if (!mDelayedMessageBuffer.isBuffered(Constants.MESSAGE_ACTIVE_SOURCE)) { - mService.sendCecCommand(HdmiCecMessageBuilder.buildRequestActiveSource(mAddress)); + mService.sendCecCommand( + HdmiCecMessageBuilder.buildRequestActiveSource( + getDeviceInfo().getLogicalAddress())); } } @@ -265,15 +271,19 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { private void handleSelectInternalSource() { assertRunOnServiceThread(); // Seq #18 - if (mService.isControlEnabled() && getActiveSource().logicalAddress != mAddress) { - updateActiveSource(mAddress, mService.getPhysicalAddress(), + if (mService.isControlEnabled() + && getActiveSource().logicalAddress != getDeviceInfo().getLogicalAddress()) { + updateActiveSource( + getDeviceInfo().getLogicalAddress(), + mService.getPhysicalAddress(), "HdmiCecLocalDeviceTv#handleSelectInternalSource()"); if (mSkipRoutingControl) { mSkipRoutingControl = false; return; } - HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource( - mAddress, mService.getPhysicalAddress()); + HdmiCecMessage activeSource = + HdmiCecMessageBuilder.buildActiveSource( + getDeviceInfo().getLogicalAddress(), mService.getPhysicalAddress()); mService.sendCecCommand(activeSource); } } @@ -294,7 +304,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { setActiveSource(newActive, caller); int logicalAddress = newActive.logicalAddress; if (mService.getHdmiCecNetwork().getCecDeviceInfo(logicalAddress) != null - && logicalAddress != mAddress) { + && logicalAddress != getDeviceInfo().getLogicalAddress()) { if (mService.pathToPortId(newActive.physicalAddress) == getActivePortId()) { setPrevPortId(getActivePortId()); } @@ -383,7 +393,8 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { return; } HdmiCecMessage routingChange = - HdmiCecMessageBuilder.buildRoutingChange(mAddress, oldPath, newPath); + HdmiCecMessageBuilder.buildRoutingChange( + getDeviceInfo().getLogicalAddress(), oldPath, newPath); mService.sendCecCommand(routingChange); removeAction(RoutingControlAction.class); addAndStartAction( @@ -485,9 +496,10 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { protected int handleRequestActiveSource(HdmiCecMessage message) { assertRunOnServiceThread(); // Seq #19 - if (mAddress == getActiveSource().logicalAddress) { + if (getDeviceInfo().getLogicalAddress() == getActiveSource().logicalAddress) { mService.sendCecCommand( - HdmiCecMessageBuilder.buildActiveSource(mAddress, getActivePath())); + HdmiCecMessageBuilder.buildActiveSource( + getDeviceInfo().getLogicalAddress(), getActivePath())); } return Constants.HANDLED; } @@ -506,8 +518,9 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { @ServiceThreadOnly boolean broadcastMenuLanguage(String language) { assertRunOnServiceThread(); - HdmiCecMessage command = HdmiCecMessageBuilder.buildSetMenuLanguageCommand( - mAddress, language); + HdmiCecMessage command = + HdmiCecMessageBuilder.buildSetMenuLanguageCommand( + getDeviceInfo().getLogicalAddress(), language); if (command != null) { mService.sendCecCommand(command); return true; @@ -1213,8 +1226,9 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { setActivePath(activePath); if (!routingForBootup && !mDelayedMessageBuffer.isBuffered(Constants.MESSAGE_ACTIVE_SOURCE)) { - mService.sendCecCommand(HdmiCecMessageBuilder.buildActiveSource(mAddress, - activePath)); + mService.sendCecCommand( + HdmiCecMessageBuilder.buildActiveSource( + getDeviceInfo().getLogicalAddress(), activePath)); } } } @@ -1336,8 +1350,9 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { HdmiControlManager.CEC_SETTING_NAME_TV_SEND_STANDBY_ON_SLEEP) == HdmiControlManager.TV_SEND_STANDBY_ON_SLEEP_ENABLED; if (!initiatedByCec && sendStandbyOnSleep) { - mService.sendCecCommand(HdmiCecMessageBuilder.buildStandby( - mAddress, Constants.ADDR_BROADCAST)); + mService.sendCecCommand( + HdmiCecMessageBuilder.buildStandby( + getDeviceInfo().getLogicalAddress(), Constants.ADDR_BROADCAST)); } } @@ -1410,7 +1425,9 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { // Remove one touch record action so that other one touch record can be started. removeAction(OneTouchRecordAction.class); - mService.sendCecCommand(HdmiCecMessageBuilder.buildRecordOff(mAddress, recorderAddress)); + mService.sendCecCommand( + HdmiCecMessageBuilder.buildRecordOff( + getDeviceInfo().getLogicalAddress(), recorderAddress)); Slog.i(TAG, "Stop [One Touch Record]-Target:" + recorderAddress); } @@ -1491,16 +1508,19 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { HdmiCecMessage message = null; switch (sourceType) { case TIMER_RECORDING_TYPE_DIGITAL: - message = HdmiCecMessageBuilder.buildClearDigitalTimer(mAddress, recorderAddress, - recordSource); + message = + HdmiCecMessageBuilder.buildClearDigitalTimer( + getDeviceInfo().getLogicalAddress(), recorderAddress, recordSource); break; case TIMER_RECORDING_TYPE_ANALOGUE: - message = HdmiCecMessageBuilder.buildClearAnalogueTimer(mAddress, recorderAddress, - recordSource); + message = + HdmiCecMessageBuilder.buildClearAnalogueTimer( + getDeviceInfo().getLogicalAddress(), recorderAddress, recordSource); break; case TIMER_RECORDING_TYPE_EXTERNAL: - message = HdmiCecMessageBuilder.buildClearExternalTimer(mAddress, recorderAddress, - recordSource); + message = + HdmiCecMessageBuilder.buildClearExternalTimer( + getDeviceInfo().getLogicalAddress(), recorderAddress, recordSource); break; default: Slog.w(TAG, "Invalid source type:" + recorderAddress); @@ -1568,7 +1588,9 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { return; } int targetAddress = targetDevice.getLogicalAddress(); - mService.sendCecCommand(HdmiCecMessageBuilder.buildStandby(mAddress, targetAddress)); + mService.sendCecCommand( + HdmiCecMessageBuilder.buildStandby( + getDeviceInfo().getLogicalAddress(), targetAddress)); } @ServiceThreadOnly diff --git a/services/core/java/com/android/server/hdmi/HdmiCecNetwork.java b/services/core/java/com/android/server/hdmi/HdmiCecNetwork.java index 7ceaa959212e..225785a4401d 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecNetwork.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecNetwork.java @@ -166,18 +166,6 @@ public class HdmiCecNetwork { } return false; } - /** - * Clear all logical addresses registered in the device. - * - * <p>Declared as package-private. accessed by {@link HdmiControlService} only. - */ - @ServiceThreadOnly - void clearLogicalAddress() { - assertRunOnServiceThread(); - for (int i = 0; i < mLocalDevices.size(); ++i) { - mLocalDevices.valueAt(i).clearAddress(); - } - } @ServiceThreadOnly void clearLocalDevices() { @@ -862,7 +850,7 @@ public class HdmiCecNetwork { private boolean isLocalDeviceAddress(int address) { for (int i = 0; i < mLocalDevices.size(); i++) { int key = mLocalDevices.keyAt(i); - if (mLocalDevices.get(key).mAddress == address) { + if (mLocalDevices.get(key).getDeviceInfo().getLogicalAddress() == address) { return true; } } diff --git a/services/core/java/com/android/server/hdmi/HdmiCecPowerStatusController.java b/services/core/java/com/android/server/hdmi/HdmiCecPowerStatusController.java index c4dadaa19bd4..552ff376a2d6 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecPowerStatusController.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecPowerStatusController.java @@ -77,8 +77,10 @@ class HdmiCecPowerStatusController { private void sendReportPowerStatus(int powerStatus) { for (HdmiCecLocalDevice localDevice : mHdmiControlService.getAllLocalDevices()) { mHdmiControlService.sendCecCommand( - HdmiCecMessageBuilder.buildReportPowerStatus(localDevice.mAddress, - Constants.ADDR_BROADCAST, powerStatus)); + HdmiCecMessageBuilder.buildReportPowerStatus( + localDevice.getDeviceInfo().getLogicalAddress(), + Constants.ADDR_BROADCAST, + powerStatus)); } } } diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index c7d0e9e9f1fe..c56610cff2eb 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -1395,8 +1395,9 @@ public class HdmiControlService extends SystemService { deviceInfo.getLogicalAddress(), deviceInfo.getPhysicalAddress(), deviceInfo.getPortId(), deviceInfo.getDeviceType(), deviceInfo.getVendorId(), newDisplayName, deviceInfo.getDevicePowerStatus(), deviceInfo.getCecVersion())); - sendCecCommand(HdmiCecMessageBuilder.buildSetOsdNameCommand( - device.mAddress, Constants.ADDR_TV, newDisplayName)); + sendCecCommand( + HdmiCecMessageBuilder.buildSetOsdNameCommand( + deviceInfo.getLogicalAddress(), Constants.ADDR_TV, newDisplayName)); } } @@ -2294,7 +2295,9 @@ public class HdmiControlService extends SystemService { } sendCecCommand( HdmiCecMessageBuilder.buildSetSystemAudioMode( - audioSystem().mAddress, Constants.ADDR_BROADCAST, true)); + audioSystem().getDeviceInfo().getLogicalAddress(), + Constants.ADDR_BROADCAST, + true)); } }); } @@ -3200,7 +3203,6 @@ public class HdmiControlService extends SystemService { return; } mCecController.clearLogicalAddress(); - mHdmiCecNetwork.clearLogicalAddress(); mHdmiCecNetwork.clearLocalDevices(); } diff --git a/services/core/java/com/android/server/hdmi/SendKeyAction.java b/services/core/java/com/android/server/hdmi/SendKeyAction.java index 5ad7fab888fd..adcef667545f 100644 --- a/services/core/java/com/android/server/hdmi/SendKeyAction.java +++ b/services/core/java/com/android/server/hdmi/SendKeyAction.java @@ -20,6 +20,7 @@ import static com.android.server.hdmi.HdmiConfig.IRT_MS; import android.hardware.tv.cec.V1_0.SendMessageResult; import android.util.Slog; import android.view.KeyEvent; + import com.android.server.hdmi.HdmiControlService.SendMessageCallback; /** @@ -152,7 +153,7 @@ final class SendKeyAction extends HdmiCecFeatureAction { // audio system device is still plugged in. Framework checks if the volume key forwarding is // successful or not every time to make sure the System Audio Mode status is still updated. if (mTargetAddress == Constants.ADDR_AUDIO_SYSTEM - && localDevice().mAddress != Constants.ADDR_TV) { + && localDevice().getDeviceInfo().getLogicalAddress() != Constants.ADDR_TV) { sendCommand(HdmiCecMessageBuilder.buildUserControlPressed(getSourceAddress(), mTargetAddress, cecKeycodeAndParams), new SendMessageCallback() { @Override diff --git a/services/tests/servicestests/src/com/android/server/hdmi/ActiveSourceActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/ActiveSourceActionTest.java index a38a84b80e81..88f70af7b202 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/ActiveSourceActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/ActiveSourceActionTest.java @@ -139,10 +139,14 @@ public class ActiveSourceActionTest { playbackDevice.addAndStartAction(action); mTestLooper.dispatchAll(); - HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource( - playbackDevice.mAddress, mPhysicalAddress); - HdmiCecMessage menuStatus = HdmiCecMessageBuilder.buildReportMenuStatus( - playbackDevice.mAddress, ADDR_TV, Constants.MENU_STATE_ACTIVATED); + HdmiCecMessage activeSource = + HdmiCecMessageBuilder.buildActiveSource( + playbackDevice.getDeviceInfo().getLogicalAddress(), mPhysicalAddress); + HdmiCecMessage menuStatus = + HdmiCecMessageBuilder.buildReportMenuStatus( + playbackDevice.getDeviceInfo().getLogicalAddress(), + ADDR_TV, + Constants.MENU_STATE_ACTIVATED); assertThat(mNativeWrapper.getResultMessages()).contains(activeSource); assertThat(mNativeWrapper.getResultMessages()).contains(menuStatus); @@ -162,8 +166,8 @@ public class ActiveSourceActionTest { playbackDevice.addAndStartAction(action); mTestLooper.dispatchAll(); - assertThat(playbackDevice.getActiveSource().logicalAddress).isEqualTo( - playbackDevice.mAddress); + assertThat(playbackDevice.getActiveSource().logicalAddress) + .isEqualTo(playbackDevice.getDeviceInfo().getLogicalAddress()); assertThat(playbackDevice.getActiveSource().physicalAddress).isEqualTo(mPhysicalAddress); assertThat(playbackDevice.isActiveSource()).isTrue(); } @@ -182,10 +186,14 @@ public class ActiveSourceActionTest { audioDevice.addAndStartAction(action); mTestLooper.dispatchAll(); - HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource(audioDevice.mAddress, - mPhysicalAddress); - HdmiCecMessage menuStatus = HdmiCecMessageBuilder.buildReportMenuStatus( - audioDevice.mAddress, ADDR_TV, Constants.MENU_STATE_ACTIVATED); + HdmiCecMessage activeSource = + HdmiCecMessageBuilder.buildActiveSource( + audioDevice.getDeviceInfo().getLogicalAddress(), mPhysicalAddress); + HdmiCecMessage menuStatus = + HdmiCecMessageBuilder.buildReportMenuStatus( + audioDevice.getDeviceInfo().getLogicalAddress(), + ADDR_TV, + Constants.MENU_STATE_ACTIVATED); assertThat(mNativeWrapper.getResultMessages()).contains(activeSource); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(menuStatus); diff --git a/services/tests/servicestests/src/com/android/server/hdmi/DetectTvSystemAudioModeSupportActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/DetectTvSystemAudioModeSupportActionTest.java index f49b1c13087b..9c99240628a4 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/DetectTvSystemAudioModeSupportActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/DetectTvSystemAudioModeSupportActionTest.java @@ -73,7 +73,9 @@ public class DetectTvSystemAudioModeSupportActionTest { mHdmiCecLocalDeviceAudioSystem.dispatchMessage( HdmiCecMessageBuilder.buildFeatureAbortCommand( Constants.ADDR_TV, - mHdmiCecLocalDeviceAudioSystem.mAddress, + mHdmiCecLocalDeviceAudioSystem + .getDeviceInfo() + .getLogicalAddress(), Constants.MESSAGE_SET_SYSTEM_AUDIO_MODE, Constants.ABORT_UNRECOGNIZED_OPCODE)); } @@ -106,6 +108,7 @@ public class DetectTvSystemAudioModeSupportActionTest { } }; mHdmiCecLocalDeviceAudioSystem.init(); + mHdmiCecLocalDeviceAudioSystem.setDeviceInfo(mDeviceInfoForTests); Looper looper = mTestLooper.getLooper(); hdmiControlService.setIoLooper(looper); diff --git a/services/tests/servicestests/src/com/android/server/hdmi/DevicePowerStatusActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/DevicePowerStatusActionTest.java index fe8d691d6fb8..57756f968386 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/DevicePowerStatusActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/DevicePowerStatusActionTest.java @@ -150,12 +150,16 @@ public class DevicePowerStatusActionTest { mPlaybackDevice.addAndStartAction(mDevicePowerStatusAction); mTestLooper.dispatchAll(); - HdmiCecMessage expected = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - mPlaybackDevice.mAddress, ADDR_TV); + HdmiCecMessage expected = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + mPlaybackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(expected); - HdmiCecMessage response = HdmiCecMessageBuilder.buildReportPowerStatus( - ADDR_TV, mPlaybackDevice.mAddress, HdmiControlManager.POWER_STATUS_STANDBY); + HdmiCecMessage response = + HdmiCecMessageBuilder.buildReportPowerStatus( + ADDR_TV, + mPlaybackDevice.getDeviceInfo().getLogicalAddress(), + HdmiControlManager.POWER_STATUS_STANDBY); mNativeWrapper.onCecMessage(response); mTestLooper.dispatchAll(); @@ -177,8 +181,9 @@ public class DevicePowerStatusActionTest { public void queryDisplayStatus_sendsRequest_timeout_retriesSuccessfully() throws Exception { mPlaybackDevice.addAndStartAction(mDevicePowerStatusAction); - HdmiCecMessage expected = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - mPlaybackDevice.mAddress, ADDR_TV); + HdmiCecMessage expected = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + mPlaybackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expected); @@ -188,8 +193,11 @@ public class DevicePowerStatusActionTest { assertThat(mNativeWrapper.getResultMessages()).contains(expected); - HdmiCecMessage response = HdmiCecMessageBuilder.buildReportPowerStatus( - ADDR_TV, mPlaybackDevice.mAddress, HdmiControlManager.POWER_STATUS_STANDBY); + HdmiCecMessage response = + HdmiCecMessageBuilder.buildReportPowerStatus( + ADDR_TV, + mPlaybackDevice.getDeviceInfo().getLogicalAddress(), + HdmiControlManager.POWER_STATUS_STANDBY); mNativeWrapper.onCecMessage(response); mTestLooper.dispatchAll(); @@ -201,8 +209,9 @@ public class DevicePowerStatusActionTest { mPlaybackDevice.addAndStartAction(mDevicePowerStatusAction); mTestLooper.dispatchAll(); - HdmiCecMessage expected = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - mPlaybackDevice.mAddress, ADDR_TV); + HdmiCecMessage expected = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + mPlaybackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(expected); mNativeWrapper.clearResultMessages(); mTestLooper.moveTimeForward(TIMEOUT_MS); @@ -225,12 +234,16 @@ public class DevicePowerStatusActionTest { mPlaybackDevice.addAndStartAction(mDevicePowerStatusAction); mTestLooper.dispatchAll(); - HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - mPlaybackDevice.mAddress, ADDR_TV); + HdmiCecMessage giveDevicePowerStatus = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + mPlaybackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(giveDevicePowerStatus); - HdmiCecMessage response = HdmiCecMessageBuilder.buildReportPowerStatus( - ADDR_TV, mPlaybackDevice.mAddress, HdmiControlManager.POWER_STATUS_STANDBY); + HdmiCecMessage response = + HdmiCecMessageBuilder.buildReportPowerStatus( + ADDR_TV, + mPlaybackDevice.getDeviceInfo().getLogicalAddress(), + HdmiControlManager.POWER_STATUS_STANDBY); mNativeWrapper.onCecMessage(response); mTestLooper.dispatchAll(); @@ -254,8 +267,9 @@ public class DevicePowerStatusActionTest { mPlaybackDevice.addAndStartAction(mDevicePowerStatusAction); mTestLooper.dispatchAll(); - HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - mPlaybackDevice.mAddress, ADDR_TV); + HdmiCecMessage giveDevicePowerStatus = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + mPlaybackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(giveDevicePowerStatus); verify(mCallbackMock).onComplete(HdmiControlManager.POWER_STATUS_STANDBY); @@ -278,12 +292,16 @@ public class DevicePowerStatusActionTest { mPlaybackDevice.addAndStartAction(mDevicePowerStatusAction); mTestLooper.dispatchAll(); - HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - mPlaybackDevice.mAddress, ADDR_TV); + HdmiCecMessage giveDevicePowerStatus = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + mPlaybackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(giveDevicePowerStatus); - HdmiCecMessage response = HdmiCecMessageBuilder.buildReportPowerStatus( - ADDR_TV, mPlaybackDevice.mAddress, HdmiControlManager.POWER_STATUS_STANDBY); + HdmiCecMessage response = + HdmiCecMessageBuilder.buildReportPowerStatus( + ADDR_TV, + mPlaybackDevice.getDeviceInfo().getLogicalAddress(), + HdmiControlManager.POWER_STATUS_STANDBY); mNativeWrapper.onCecMessage(response); mTestLooper.dispatchAll(); @@ -298,8 +316,9 @@ public class DevicePowerStatusActionTest { mHdmiControlService.onStandby(HdmiControlService.STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); - HdmiCecMessage standbyMessage = HdmiCecMessageBuilder.buildStandby( - mPlaybackDevice.mAddress, ADDR_TV); + HdmiCecMessage standbyMessage = + HdmiCecMessageBuilder.buildStandby( + mPlaybackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(standbyMessage); } } diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java index e03e1be4e107..7eb89900d7d4 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java @@ -795,12 +795,13 @@ public class HdmiCecLocalDeviceAudioSystemTest { @Test public void setActiveSource_localDevice_playback() { - mHdmiControlService.setActiveSource(mHdmiCecLocalDevicePlayback.mAddress, + mHdmiControlService.setActiveSource( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), SELF_PHYSICAL_ADDRESS, "HdmiControlServiceTest"); - assertThat(mHdmiControlService.getLocalActiveSource().logicalAddress).isEqualTo( - mHdmiCecLocalDevicePlayback.mAddress); + assertThat(mHdmiControlService.getLocalActiveSource().logicalAddress) + .isEqualTo(mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress()); assertThat(mHdmiControlService.getLocalActiveSource().physicalAddress).isEqualTo( SELF_PHYSICAL_ADDRESS); assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isTrue(); @@ -809,12 +810,13 @@ public class HdmiCecLocalDeviceAudioSystemTest { @Test public void setActiveSource_localDevice_audio() { - mHdmiControlService.setActiveSource(mHdmiCecLocalDeviceAudioSystem.mAddress, + mHdmiControlService.setActiveSource( + mHdmiCecLocalDeviceAudioSystem.getDeviceInfo().getLogicalAddress(), SELF_PHYSICAL_ADDRESS, "HdmiControlServiceTest"); - assertThat(mHdmiControlService.getLocalActiveSource().logicalAddress).isEqualTo( - mHdmiCecLocalDeviceAudioSystem.mAddress); + assertThat(mHdmiControlService.getLocalActiveSource().logicalAddress) + .isEqualTo(mHdmiCecLocalDeviceAudioSystem.getDeviceInfo().getLogicalAddress()); assertThat(mHdmiControlService.getLocalActiveSource().physicalAddress).isEqualTo( SELF_PHYSICAL_ADDRESS); assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse(); diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java index 99e3d683db5c..337276d8f6d5 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java @@ -657,7 +657,9 @@ public class HdmiCecLocalDevicePlaybackTest { // Test should ignore it and still keep the system audio mode on. HdmiCecMessage message = HdmiCecMessageBuilder.buildSetSystemAudioMode( - Constants.ADDR_AUDIO_SYSTEM, mHdmiCecLocalDevicePlayback.mAddress, false); + Constants.ADDR_AUDIO_SYSTEM, + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + false); assertThat(mHdmiCecLocalDevicePlayback.handleSetSystemAudioMode(message)) .isEqualTo(Constants.HANDLED); assertThat(mHdmiCecLocalDevicePlayback.mService.isSystemAudioActivated()).isTrue(); @@ -669,7 +671,9 @@ public class HdmiCecLocalDevicePlaybackTest { assertThat(mHdmiCecLocalDevicePlayback.mService.isSystemAudioActivated()).isFalse(); HdmiCecMessage message = HdmiCecMessageBuilder.buildReportSystemAudioMode( - Constants.ADDR_AUDIO_SYSTEM, mHdmiCecLocalDevicePlayback.mAddress, true); + Constants.ADDR_AUDIO_SYSTEM, + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + true); assertThat(mHdmiCecLocalDevicePlayback.handleSystemAudioModeStatus(message)) .isEqualTo(Constants.HANDLED); assertThat(mHdmiCecLocalDevicePlayback.mService.isSystemAudioActivated()).isTrue(); @@ -699,12 +703,17 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.onStandby(false, HdmiControlService.STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); - HdmiCecMessage standbyMessageToTv = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); - HdmiCecMessage standbyMessageToAudioSystem = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_AUDIO_SYSTEM); - HdmiCecMessage standbyMessageBroadcast = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_BROADCAST); + HdmiCecMessage standbyMessageToTv = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage standbyMessageToAudioSystem = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_AUDIO_SYSTEM); + HdmiCecMessage standbyMessageBroadcast = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_BROADCAST); HdmiCecMessage inactiveSource = HdmiCecMessageBuilder.buildInactiveSource( mPlaybackLogicalAddress, mPlaybackPhysicalAddress); @@ -724,12 +733,17 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.onStandby(false, HdmiControlService.STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); - HdmiCecMessage standbyMessageToTv = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); - HdmiCecMessage standbyMessageToAudioSystem = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_AUDIO_SYSTEM); - HdmiCecMessage standbyMessageBroadcast = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_BROADCAST); + HdmiCecMessage standbyMessageToTv = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage standbyMessageToAudioSystem = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_AUDIO_SYSTEM); + HdmiCecMessage standbyMessageBroadcast = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_BROADCAST); HdmiCecMessage inactiveSource = HdmiCecMessageBuilder.buildInactiveSource( mPlaybackLogicalAddress, mPlaybackPhysicalAddress); @@ -749,12 +763,17 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.onStandby(false, HdmiControlService.STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); - HdmiCecMessage standbyMessageToTv = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); - HdmiCecMessage standbyMessageToAudioSystem = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_AUDIO_SYSTEM); - HdmiCecMessage standbyMessageBroadcast = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_BROADCAST); + HdmiCecMessage standbyMessageToTv = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage standbyMessageToAudioSystem = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_AUDIO_SYSTEM); + HdmiCecMessage standbyMessageBroadcast = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_BROADCAST); HdmiCecMessage inactiveSource = HdmiCecMessageBuilder.buildInactiveSource( mPlaybackLogicalAddress, mPlaybackPhysicalAddress); @@ -774,12 +793,17 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.onStandby(false, HdmiControlService.STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); - HdmiCecMessage standbyMessageToTv = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); - HdmiCecMessage standbyMessageToAudioSystem = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_AUDIO_SYSTEM); - HdmiCecMessage standbyMessageBroadcast = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_BROADCAST); + HdmiCecMessage standbyMessageToTv = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage standbyMessageToAudioSystem = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_AUDIO_SYSTEM); + HdmiCecMessage standbyMessageBroadcast = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_BROADCAST); HdmiCecMessage inactiveSource = HdmiCecMessageBuilder.buildInactiveSource( mPlaybackLogicalAddress, mPlaybackPhysicalAddress); @@ -799,12 +823,17 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.onStandby(false, HdmiControlService.STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); - HdmiCecMessage standbyMessageToTv = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); - HdmiCecMessage standbyMessageToAudioSystem = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_AUDIO_SYSTEM); - HdmiCecMessage standbyMessageBroadcast = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_BROADCAST); + HdmiCecMessage standbyMessageToTv = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage standbyMessageToAudioSystem = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_AUDIO_SYSTEM); + HdmiCecMessage standbyMessageBroadcast = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_BROADCAST); HdmiCecMessage inactiveSource = HdmiCecMessageBuilder.buildInactiveSource( mPlaybackLogicalAddress, mPlaybackPhysicalAddress); @@ -824,12 +853,17 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.onStandby(false, HdmiControlService.STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); - HdmiCecMessage standbyMessageToTv = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); - HdmiCecMessage standbyMessageToAudioSystem = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_AUDIO_SYSTEM); - HdmiCecMessage standbyMessageBroadcast = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_BROADCAST); + HdmiCecMessage standbyMessageToTv = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage standbyMessageToAudioSystem = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_AUDIO_SYSTEM); + HdmiCecMessage standbyMessageBroadcast = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_BROADCAST); HdmiCecMessage inactiveSource = HdmiCecMessageBuilder.buildInactiveSource( mPlaybackLogicalAddress, mPlaybackPhysicalAddress); @@ -849,12 +883,17 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.onStandby(false, HdmiControlService.STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); - HdmiCecMessage standbyMessageToTv = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); - HdmiCecMessage standbyMessageToAudioSystem = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_AUDIO_SYSTEM); - HdmiCecMessage standbyMessageBroadcast = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_BROADCAST); + HdmiCecMessage standbyMessageToTv = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage standbyMessageToAudioSystem = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_AUDIO_SYSTEM); + HdmiCecMessage standbyMessageBroadcast = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_BROADCAST); HdmiCecMessage inactiveSource = HdmiCecMessageBuilder.buildInactiveSource( mPlaybackLogicalAddress, mPlaybackPhysicalAddress); @@ -874,12 +913,17 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.onStandby(false, HdmiControlService.STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); - HdmiCecMessage standbyMessageToTv = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); - HdmiCecMessage standbyMessageToAudioSystem = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_AUDIO_SYSTEM); - HdmiCecMessage standbyMessageBroadcast = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_BROADCAST); + HdmiCecMessage standbyMessageToTv = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage standbyMessageToAudioSystem = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_AUDIO_SYSTEM); + HdmiCecMessage standbyMessageBroadcast = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_BROADCAST); HdmiCecMessage inactiveSource = HdmiCecMessageBuilder.buildInactiveSource( mPlaybackLogicalAddress, mPlaybackPhysicalAddress); @@ -899,10 +943,13 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.onStandby(true, HdmiControlService.STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); - HdmiCecMessage standbyMessageToTv = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); - HdmiCecMessage standbyMessageBroadcast = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_BROADCAST); + HdmiCecMessage standbyMessageToTv = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage standbyMessageBroadcast = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_BROADCAST); HdmiCecMessage inactiveSource = HdmiCecMessageBuilder.buildInactiveSource( mPlaybackLogicalAddress, mPlaybackPhysicalAddress); @@ -1119,8 +1166,10 @@ public class HdmiCecLocalDevicePlaybackTest { HdmiControlManager.POWER_CONTROL_MODE_BROADCAST); mStandby = false; // 1. DUT is <AS>. - HdmiCecMessage message1 = HdmiCecMessageBuilder.buildActiveSource( - mHdmiCecLocalDevicePlayback.mAddress, mPlaybackPhysicalAddress); + HdmiCecMessage message1 = + HdmiCecMessageBuilder.buildActiveSource( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + mPlaybackPhysicalAddress); assertThat(mHdmiCecLocalDevicePlayback.handleActiveSource(message1)) .isEqualTo(Constants.HANDLED); assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isTrue(); @@ -1137,16 +1186,20 @@ public class HdmiCecLocalDevicePlaybackTest { mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(setStreamPath); mTestLooper.dispatchAll(); - HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource( - mHdmiCecLocalDevicePlayback.mAddress, mPlaybackPhysicalAddress); + HdmiCecMessage activeSource = + HdmiCecMessageBuilder.buildActiveSource( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + mPlaybackPhysicalAddress); assertThat(mNativeWrapper.getResultMessages()).contains(activeSource); assertThat(mWokenUp).isTrue(); assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isTrue(); // 4. DUT turned off. mHdmiControlService.onStandby(HdmiControlService.STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); - HdmiCecMessage standbyMessageBroadcast = HdmiCecMessageBuilder.buildStandby( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_BROADCAST); + HdmiCecMessage standbyMessageBroadcast = + HdmiCecMessageBuilder.buildStandby( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_BROADCAST); assertThat(mNativeWrapper.getResultMessages()).contains(standbyMessageBroadcast); } @@ -1158,11 +1211,14 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, false); mTestLooper.dispatchAll(); - HdmiCecMessage keyPressed = HdmiCecMessageBuilder.buildUserControlPressed( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV, - HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); - HdmiCecMessage keyReleased = HdmiCecMessageBuilder.buildUserControlReleased( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); + HdmiCecMessage keyPressed = + HdmiCecMessageBuilder.buildUserControlPressed( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_TV, + HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); + HdmiCecMessage keyReleased = + HdmiCecMessageBuilder.buildUserControlReleased( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(keyPressed); assertThat(mNativeWrapper.getResultMessages()).contains(keyReleased); @@ -1176,11 +1232,14 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_DOWN, false); mTestLooper.dispatchAll(); - HdmiCecMessage keyPressed = HdmiCecMessageBuilder.buildUserControlPressed( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV, - HdmiCecKeycode.CEC_KEYCODE_VOLUME_DOWN); - HdmiCecMessage keyReleased = HdmiCecMessageBuilder.buildUserControlReleased( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); + HdmiCecMessage keyPressed = + HdmiCecMessageBuilder.buildUserControlPressed( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_TV, + HdmiCecKeycode.CEC_KEYCODE_VOLUME_DOWN); + HdmiCecMessage keyReleased = + HdmiCecMessageBuilder.buildUserControlReleased( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(keyPressed); assertThat(mNativeWrapper.getResultMessages()).contains(keyReleased); @@ -1194,11 +1253,14 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_MUTE, false); mTestLooper.dispatchAll(); - HdmiCecMessage keyPressed = HdmiCecMessageBuilder.buildUserControlPressed( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV, - HdmiCecKeycode.CEC_KEYCODE_MUTE); - HdmiCecMessage keyReleased = HdmiCecMessageBuilder.buildUserControlReleased( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); + HdmiCecMessage keyPressed = + HdmiCecMessageBuilder.buildUserControlPressed( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_TV, + HdmiCecKeycode.CEC_KEYCODE_MUTE); + HdmiCecMessage keyReleased = + HdmiCecMessageBuilder.buildUserControlReleased( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(keyPressed); assertThat(mNativeWrapper.getResultMessages()).contains(keyReleased); @@ -1212,11 +1274,14 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, false); mTestLooper.dispatchAll(); - HdmiCecMessage keyPressed = HdmiCecMessageBuilder.buildUserControlPressed( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV, - HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); - HdmiCecMessage keyReleased = HdmiCecMessageBuilder.buildUserControlReleased( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); + HdmiCecMessage keyPressed = + HdmiCecMessageBuilder.buildUserControlPressed( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_TV, + HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); + HdmiCecMessage keyReleased = + HdmiCecMessageBuilder.buildUserControlReleased( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(keyPressed); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(keyReleased); @@ -1230,11 +1295,14 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_DOWN, false); mTestLooper.dispatchAll(); - HdmiCecMessage keyPressed = HdmiCecMessageBuilder.buildUserControlPressed( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV, - HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); - HdmiCecMessage keyReleased = HdmiCecMessageBuilder.buildUserControlReleased( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); + HdmiCecMessage keyPressed = + HdmiCecMessageBuilder.buildUserControlPressed( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_TV, + HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); + HdmiCecMessage keyReleased = + HdmiCecMessageBuilder.buildUserControlReleased( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(keyPressed); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(keyReleased); @@ -1248,11 +1316,14 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_MUTE, false); mTestLooper.dispatchAll(); - HdmiCecMessage keyPressed = HdmiCecMessageBuilder.buildUserControlPressed( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV, - HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); - HdmiCecMessage keyReleased = HdmiCecMessageBuilder.buildUserControlReleased( - mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); + HdmiCecMessage keyPressed = + HdmiCecMessageBuilder.buildUserControlPressed( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + ADDR_TV, + HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); + HdmiCecMessage keyReleased = + HdmiCecMessageBuilder.buildUserControlReleased( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(keyPressed); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(keyReleased); @@ -1347,8 +1418,10 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiCecLocalDevicePlayback.dispatchMessage(setStreamPath); mTestLooper.dispatchAll(); - HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource( - mHdmiCecLocalDevicePlayback.mAddress, mPlaybackPhysicalAddress); + HdmiCecMessage activeSource = + HdmiCecMessageBuilder.buildActiveSource( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + mPlaybackPhysicalAddress); assertThat(mNativeWrapper.getResultMessages()).contains(activeSource); } @@ -1606,8 +1679,10 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void getActiveSource_localPlaybackIsActiveSource() { - mHdmiControlService.setActiveSource(mHdmiCecLocalDevicePlayback.mAddress, - mHdmiControlService.getPhysicalAddress(), "HdmiControlServiceTest"); + mHdmiControlService.setActiveSource( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + mHdmiControlService.getPhysicalAddress(), + "HdmiControlServiceTest"); assertThat(mHdmiControlService.getActiveSource()).isEqualTo( mHdmiCecLocalDevicePlayback.getDeviceInfo()); diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTest.java index 6c2db364aa4f..2f72809127ec 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTest.java @@ -386,9 +386,13 @@ public class HdmiCecLocalDeviceTest { @Test public void handleCecVersion_isHandled() { - @Constants.HandleMessageResult int result = mHdmiLocalDevice.onMessage( - HdmiCecMessageBuilder.buildCecVersion(ADDR_PLAYBACK_1, mHdmiLocalDevice.mAddress, - HdmiControlManager.HDMI_CEC_VERSION_1_4_B)); + @Constants.HandleMessageResult + int result = + mHdmiLocalDevice.onMessage( + HdmiCecMessageBuilder.buildCecVersion( + ADDR_PLAYBACK_1, + mHdmiLocalDevice.getDeviceInfo().getLogicalAddress(), + HdmiControlManager.HDMI_CEC_VERSION_1_4_B)); assertEquals(Constants.HANDLED, result); } diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java index 5a2f7bb5c9e8..a0fcd833e024 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java @@ -515,8 +515,11 @@ public class HdmiCecLocalDeviceTvTest { HdmiCecFeatureAction systemAudioAutoInitiationAction = new SystemAudioAutoInitiationAction(mHdmiCecLocalDeviceTv, ADDR_AUDIO_SYSTEM); mHdmiCecLocalDeviceTv.addAndStartAction(systemAudioAutoInitiationAction); - HdmiCecMessage reportSystemAudioMode = HdmiCecMessageBuilder.buildReportSystemAudioMode( - ADDR_AUDIO_SYSTEM, mHdmiCecLocalDeviceTv.mAddress, true); + HdmiCecMessage reportSystemAudioMode = + HdmiCecMessageBuilder.buildReportSystemAudioMode( + ADDR_AUDIO_SYSTEM, + mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), + true); mHdmiControlService.handleCecCommand(reportSystemAudioMode); mTestLooper.dispatchAll(); @@ -548,8 +551,11 @@ public class HdmiCecLocalDeviceTvTest { new SystemAudioAutoInitiationAction(mHdmiCecLocalDeviceTv, ADDR_AUDIO_SYSTEM); mHdmiCecLocalDeviceTv.addAndStartAction(systemAudioAutoInitiationAction); - HdmiCecMessage reportSystemAudioMode = HdmiCecMessageBuilder.buildReportSystemAudioMode( - ADDR_AUDIO_SYSTEM, mHdmiCecLocalDeviceTv.mAddress, true); + HdmiCecMessage reportSystemAudioMode = + HdmiCecMessageBuilder.buildReportSystemAudioMode( + ADDR_AUDIO_SYSTEM, + mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), + true); mHdmiControlService.handleCecCommand(reportSystemAudioMode); HdmiCecMessage requestArcInitiation = HdmiCecMessageBuilder.buildInitiateArc( diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecPowerStatusControllerTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecPowerStatusControllerTest.java index dc633a2429d1..ceb41cf8eee1 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecPowerStatusControllerTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecPowerStatusControllerTest.java @@ -184,9 +184,11 @@ public class HdmiCecPowerStatusControllerTest { mHdmiCecPowerStatusController.setPowerStatus(HdmiControlManager.POWER_STATUS_ON); mTestLooper.dispatchAll(); - HdmiCecMessage reportPowerStatus = HdmiCecMessageBuilder.buildReportPowerStatus( - mHdmiCecLocalDevicePlayback.mAddress, Constants.ADDR_BROADCAST, - HdmiControlManager.POWER_STATUS_ON); + HdmiCecMessage reportPowerStatus = + HdmiCecMessageBuilder.buildReportPowerStatus( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + Constants.ADDR_BROADCAST, + HdmiControlManager.POWER_STATUS_ON); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(reportPowerStatus); } @@ -197,9 +199,11 @@ public class HdmiCecPowerStatusControllerTest { HdmiControlManager.POWER_STATUS_TRANSIENT_TO_ON); mTestLooper.dispatchAll(); - HdmiCecMessage reportPowerStatus = HdmiCecMessageBuilder.buildReportPowerStatus( - mHdmiCecLocalDevicePlayback.mAddress, Constants.ADDR_BROADCAST, - HdmiControlManager.POWER_STATUS_TRANSIENT_TO_ON); + HdmiCecMessage reportPowerStatus = + HdmiCecMessageBuilder.buildReportPowerStatus( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + Constants.ADDR_BROADCAST, + HdmiControlManager.POWER_STATUS_TRANSIENT_TO_ON); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(reportPowerStatus); } @@ -210,9 +214,11 @@ public class HdmiCecPowerStatusControllerTest { HdmiControlManager.POWER_STATUS_TRANSIENT_TO_ON, false); mTestLooper.dispatchAll(); - HdmiCecMessage reportPowerStatus = HdmiCecMessageBuilder.buildReportPowerStatus( - mHdmiCecLocalDevicePlayback.mAddress, Constants.ADDR_BROADCAST, - HdmiControlManager.POWER_STATUS_TRANSIENT_TO_ON); + HdmiCecMessage reportPowerStatus = + HdmiCecMessageBuilder.buildReportPowerStatus( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + Constants.ADDR_BROADCAST, + HdmiControlManager.POWER_STATUS_TRANSIENT_TO_ON); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(reportPowerStatus); } @@ -222,9 +228,11 @@ public class HdmiCecPowerStatusControllerTest { mHdmiCecPowerStatusController.setPowerStatus(HdmiControlManager.POWER_STATUS_ON); mTestLooper.dispatchAll(); - HdmiCecMessage reportPowerStatus = HdmiCecMessageBuilder.buildReportPowerStatus( - mHdmiCecLocalDevicePlayback.mAddress, Constants.ADDR_BROADCAST, - HdmiControlManager.POWER_STATUS_ON); + HdmiCecMessage reportPowerStatus = + HdmiCecMessageBuilder.buildReportPowerStatus( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + Constants.ADDR_BROADCAST, + HdmiControlManager.POWER_STATUS_ON); assertThat(mNativeWrapper.getResultMessages()).contains(reportPowerStatus); } @@ -235,9 +243,11 @@ public class HdmiCecPowerStatusControllerTest { HdmiControlManager.POWER_STATUS_TRANSIENT_TO_ON); mTestLooper.dispatchAll(); - HdmiCecMessage reportPowerStatus = HdmiCecMessageBuilder.buildReportPowerStatus( - mHdmiCecLocalDevicePlayback.mAddress, Constants.ADDR_BROADCAST, - HdmiControlManager.POWER_STATUS_TRANSIENT_TO_ON); + HdmiCecMessage reportPowerStatus = + HdmiCecMessageBuilder.buildReportPowerStatus( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + Constants.ADDR_BROADCAST, + HdmiControlManager.POWER_STATUS_TRANSIENT_TO_ON); assertThat(mNativeWrapper.getResultMessages()).contains(reportPowerStatus); } @@ -248,9 +258,11 @@ public class HdmiCecPowerStatusControllerTest { HdmiControlManager.POWER_STATUS_TRANSIENT_TO_ON, false); mTestLooper.dispatchAll(); - HdmiCecMessage reportPowerStatus = HdmiCecMessageBuilder.buildReportPowerStatus( - mHdmiCecLocalDevicePlayback.mAddress, Constants.ADDR_BROADCAST, - HdmiControlManager.POWER_STATUS_TRANSIENT_TO_ON); + HdmiCecMessage reportPowerStatus = + HdmiCecMessageBuilder.buildReportPowerStatus( + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(), + Constants.ADDR_BROADCAST, + HdmiControlManager.POWER_STATUS_TRANSIENT_TO_ON); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(reportPowerStatus); } diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiControlServiceTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiControlServiceTest.java index 755eef3a578b..270430838fd4 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiControlServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiControlServiceTest.java @@ -735,9 +735,11 @@ public class HdmiControlServiceTest { mHdmiControlServiceSpy.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC); mTestLooper.dispatchAll(); - HdmiCecMessage reportPowerStatus = HdmiCecMessageBuilder.buildReportPowerStatus( - Constants.ADDR_TV, - mHdmiControlServiceSpy.playback().mAddress, HdmiControlManager.POWER_STATUS_ON); + HdmiCecMessage reportPowerStatus = + HdmiCecMessageBuilder.buildReportPowerStatus( + Constants.ADDR_TV, + mHdmiControlServiceSpy.playback().getDeviceInfo().getLogicalAddress(), + HdmiControlManager.POWER_STATUS_ON); mNativeWrapper.onCecMessage(reportPowerStatus); mTestLooper.dispatchAll(); @@ -756,10 +758,11 @@ public class HdmiControlServiceTest { mHdmiControlServiceSpy.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC); mTestLooper.dispatchAll(); - HdmiCecMessage reportPowerStatus = HdmiCecMessageBuilder.buildReportPowerStatus( - Constants.ADDR_TV, - mHdmiControlServiceSpy.playback().mAddress, - HdmiControlManager.POWER_STATUS_STANDBY); + HdmiCecMessage reportPowerStatus = + HdmiCecMessageBuilder.buildReportPowerStatus( + Constants.ADDR_TV, + mHdmiControlServiceSpy.playback().getDeviceInfo().getLogicalAddress(), + HdmiControlManager.POWER_STATUS_STANDBY); mNativeWrapper.onCecMessage(reportPowerStatus); mTestLooper.dispatchAll(); diff --git a/services/tests/servicestests/src/com/android/server/hdmi/OneTouchPlayActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/OneTouchPlayActionTest.java index 9466f5270085..d5b116f7b0c2 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/OneTouchPlayActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/OneTouchPlayActionTest.java @@ -175,20 +175,27 @@ public class OneTouchPlayActionTest { playbackDevice.addAndStartAction(action); mTestLooper.dispatchAll(); - HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource( - playbackDevice.mAddress, mPhysicalAddress); - HdmiCecMessage textViewOn = HdmiCecMessageBuilder.buildTextViewOn(playbackDevice.mAddress, - ADDR_TV); - HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder - .buildGiveDevicePowerStatus(playbackDevice.mAddress, ADDR_TV); + HdmiCecMessage activeSource = + HdmiCecMessageBuilder.buildActiveSource( + playbackDevice.getDeviceInfo().getLogicalAddress(), mPhysicalAddress); + HdmiCecMessage textViewOn = + HdmiCecMessageBuilder.buildTextViewOn( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage giveDevicePowerStatus = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(textViewOn); assertThat(mNativeWrapper.getResultMessages()).contains(activeSource); assertThat(mNativeWrapper.getResultMessages()).contains(giveDevicePowerStatus); mNativeWrapper.clearResultMessages(); assertThat(actionTimer.getState()).isEqualTo(STATE_WAITING_FOR_REPORT_POWER_STATUS); - HdmiCecMessage reportPowerStatusOn = new HdmiCecMessage( - ADDR_TV, playbackDevice.mAddress, Constants.MESSAGE_REPORT_POWER_STATUS, POWER_ON); + HdmiCecMessage reportPowerStatusOn = + new HdmiCecMessage( + ADDR_TV, + playbackDevice.getDeviceInfo().getLogicalAddress(), + Constants.MESSAGE_REPORT_POWER_STATUS, + POWER_ON); action.processCommand(reportPowerStatusOn); mTestLooper.dispatchAll(); @@ -218,20 +225,27 @@ public class OneTouchPlayActionTest { playbackDevice.addAndStartAction(action); mTestLooper.dispatchAll(); - HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource( - playbackDevice.mAddress, mPhysicalAddress); - HdmiCecMessage textViewOn = HdmiCecMessageBuilder.buildTextViewOn(playbackDevice.mAddress, - ADDR_TV); - HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder - .buildGiveDevicePowerStatus(playbackDevice.mAddress, ADDR_TV); + HdmiCecMessage activeSource = + HdmiCecMessageBuilder.buildActiveSource( + playbackDevice.getDeviceInfo().getLogicalAddress(), mPhysicalAddress); + HdmiCecMessage textViewOn = + HdmiCecMessageBuilder.buildTextViewOn( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage giveDevicePowerStatus = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(textViewOn); assertThat(mNativeWrapper.getResultMessages()).contains(activeSource); assertThat(mNativeWrapper.getResultMessages()).contains(giveDevicePowerStatus); mNativeWrapper.clearResultMessages(); assertThat(actionTimer.getState()).isEqualTo(STATE_WAITING_FOR_REPORT_POWER_STATUS); - HdmiCecMessage reportPowerStatusOn = new HdmiCecMessage( - ADDR_TV, playbackDevice.mAddress, Constants.MESSAGE_REPORT_POWER_STATUS, POWER_ON); + HdmiCecMessage reportPowerStatusOn = + new HdmiCecMessage( + ADDR_TV, + playbackDevice.getDeviceInfo().getLogicalAddress(), + Constants.MESSAGE_REPORT_POWER_STATUS, + POWER_ON); action.processCommand(reportPowerStatusOn); mTestLooper.dispatchAll(); @@ -261,21 +275,27 @@ public class OneTouchPlayActionTest { playbackDevice.addAndStartAction(action); mTestLooper.dispatchAll(); - HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource( - playbackDevice.mAddress, mPhysicalAddress); - HdmiCecMessage textViewOn = HdmiCecMessageBuilder.buildTextViewOn(playbackDevice.mAddress, - ADDR_TV); - HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder - .buildGiveDevicePowerStatus(playbackDevice.mAddress, ADDR_TV); + HdmiCecMessage activeSource = + HdmiCecMessageBuilder.buildActiveSource( + playbackDevice.getDeviceInfo().getLogicalAddress(), mPhysicalAddress); + HdmiCecMessage textViewOn = + HdmiCecMessageBuilder.buildTextViewOn( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage giveDevicePowerStatus = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(textViewOn); assertThat(mNativeWrapper.getResultMessages()).contains(activeSource); assertThat(mNativeWrapper.getResultMessages()).contains(giveDevicePowerStatus); mNativeWrapper.clearResultMessages(); assertThat(actionTimer.getState()).isEqualTo(STATE_WAITING_FOR_REPORT_POWER_STATUS); - HdmiCecMessage reportPowerStatusTransientToOn = new HdmiCecMessage( - ADDR_TV, playbackDevice.mAddress, Constants.MESSAGE_REPORT_POWER_STATUS, - POWER_TRANSIENT_TO_ON); + HdmiCecMessage reportPowerStatusTransientToOn = + new HdmiCecMessage( + ADDR_TV, + playbackDevice.getDeviceInfo().getLogicalAddress(), + Constants.MESSAGE_REPORT_POWER_STATUS, + POWER_TRANSIENT_TO_ON); action.processCommand(reportPowerStatusTransientToOn); action.handleTimerEvent(STATE_WAITING_FOR_REPORT_POWER_STATUS); mTestLooper.dispatchAll(); @@ -283,8 +303,12 @@ public class OneTouchPlayActionTest { assertThat(mNativeWrapper.getResultMessages()).contains(giveDevicePowerStatus); mNativeWrapper.clearResultMessages(); - HdmiCecMessage reportPowerStatusOn = new HdmiCecMessage( - ADDR_TV, playbackDevice.mAddress, Constants.MESSAGE_REPORT_POWER_STATUS, POWER_ON); + HdmiCecMessage reportPowerStatusOn = + new HdmiCecMessage( + ADDR_TV, + playbackDevice.getDeviceInfo().getLogicalAddress(), + Constants.MESSAGE_REPORT_POWER_STATUS, + POWER_ON); action.processCommand(reportPowerStatusOn); mTestLooper.dispatchAll(); @@ -314,12 +338,15 @@ public class OneTouchPlayActionTest { playbackDevice.addAndStartAction(action); mTestLooper.dispatchAll(); - HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource( - playbackDevice.mAddress, mPhysicalAddress); - HdmiCecMessage textViewOn = HdmiCecMessageBuilder.buildTextViewOn(playbackDevice.mAddress, - ADDR_TV); - HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder - .buildGiveDevicePowerStatus(playbackDevice.mAddress, ADDR_TV); + HdmiCecMessage activeSource = + HdmiCecMessageBuilder.buildActiveSource( + playbackDevice.getDeviceInfo().getLogicalAddress(), mPhysicalAddress); + HdmiCecMessage textViewOn = + HdmiCecMessageBuilder.buildTextViewOn( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage giveDevicePowerStatus = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(textViewOn); assertThat(mNativeWrapper.getResultMessages()).contains(activeSource); @@ -360,12 +387,15 @@ public class OneTouchPlayActionTest { playbackDevice.addAndStartAction(action); mTestLooper.dispatchAll(); - HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource( - playbackDevice.mAddress, mPhysicalAddress); - HdmiCecMessage textViewOn = HdmiCecMessageBuilder.buildTextViewOn(playbackDevice.mAddress, - ADDR_TV); - HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder - .buildGiveDevicePowerStatus(playbackDevice.mAddress, ADDR_TV); + HdmiCecMessage activeSource = + HdmiCecMessageBuilder.buildActiveSource( + playbackDevice.getDeviceInfo().getLogicalAddress(), mPhysicalAddress); + HdmiCecMessage textViewOn = + HdmiCecMessageBuilder.buildTextViewOn( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage giveDevicePowerStatus = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(textViewOn); assertThat(mNativeWrapper.getResultMessages()).contains(activeSource); @@ -395,20 +425,27 @@ public class OneTouchPlayActionTest { playbackDevice.addAndStartAction(action); mTestLooper.dispatchAll(); - HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource( - playbackDevice.mAddress, mPhysicalAddress); - HdmiCecMessage textViewOn = HdmiCecMessageBuilder.buildTextViewOn(playbackDevice.mAddress, - ADDR_TV); - HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder - .buildGiveDevicePowerStatus(playbackDevice.mAddress, ADDR_TV); + HdmiCecMessage activeSource = + HdmiCecMessageBuilder.buildActiveSource( + playbackDevice.getDeviceInfo().getLogicalAddress(), mPhysicalAddress); + HdmiCecMessage textViewOn = + HdmiCecMessageBuilder.buildTextViewOn( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage giveDevicePowerStatus = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(textViewOn); assertThat(mNativeWrapper.getResultMessages()).contains(activeSource); assertThat(mNativeWrapper.getResultMessages()).contains(giveDevicePowerStatus); mNativeWrapper.clearResultMessages(); assertThat(actionTimer.getState()).isEqualTo(STATE_WAITING_FOR_REPORT_POWER_STATUS); - HdmiCecMessage reportPowerStatusOn = new HdmiCecMessage( - ADDR_TV, playbackDevice.mAddress, Constants.MESSAGE_REPORT_POWER_STATUS, POWER_ON); + HdmiCecMessage reportPowerStatusOn = + new HdmiCecMessage( + ADDR_TV, + playbackDevice.getDeviceInfo().getLogicalAddress(), + Constants.MESSAGE_REPORT_POWER_STATUS, + POWER_ON); action.processCommand(reportPowerStatusOn); mTestLooper.dispatchAll(); @@ -440,20 +477,27 @@ public class OneTouchPlayActionTest { playbackDevice.addAndStartAction(action); mTestLooper.dispatchAll(); - HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource( - playbackDevice.mAddress, mPhysicalAddress); - HdmiCecMessage textViewOn = HdmiCecMessageBuilder.buildTextViewOn(playbackDevice.mAddress, - ADDR_TV); - HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder - .buildGiveDevicePowerStatus(playbackDevice.mAddress, ADDR_TV); + HdmiCecMessage activeSource = + HdmiCecMessageBuilder.buildActiveSource( + playbackDevice.getDeviceInfo().getLogicalAddress(), mPhysicalAddress); + HdmiCecMessage textViewOn = + HdmiCecMessageBuilder.buildTextViewOn( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); + HdmiCecMessage giveDevicePowerStatus = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(textViewOn); assertThat(mNativeWrapper.getResultMessages()).contains(activeSource); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(giveDevicePowerStatus); mNativeWrapper.clearResultMessages(); assertThat(actionTimer.getState()).isEqualTo(STATE_WAITING_FOR_REPORT_POWER_STATUS); - HdmiCecMessage reportPowerStatusOn = new HdmiCecMessage( - ADDR_TV, playbackDevice.mAddress, Constants.MESSAGE_REPORT_POWER_STATUS, POWER_ON); + HdmiCecMessage reportPowerStatusOn = + new HdmiCecMessage( + ADDR_TV, + playbackDevice.getDeviceInfo().getLogicalAddress(), + Constants.MESSAGE_REPORT_POWER_STATUS, + POWER_ON); action.processCommand(reportPowerStatusOn); mTestLooper.dispatchAll(); @@ -487,11 +531,11 @@ public class OneTouchPlayActionTest { mTestLooper.dispatchAll(); - HdmiCecMessage reportPowerStatusMessage = HdmiCecMessageBuilder.buildReportPowerStatus( - Constants.ADDR_TV, - playbackDevice.mAddress, - HdmiControlManager.POWER_STATUS_ON - ); + HdmiCecMessage reportPowerStatusMessage = + HdmiCecMessageBuilder.buildReportPowerStatus( + Constants.ADDR_TV, + playbackDevice.getDeviceInfo().getLogicalAddress(), + HdmiControlManager.POWER_STATUS_ON); mNativeWrapper.onCecMessage(reportPowerStatusMessage); mTestLooper.dispatchAll(); @@ -499,10 +543,12 @@ public class OneTouchPlayActionTest { assertThat(mHdmiControlService.isAddressAllocated()).isTrue(); assertThat(callback.getResult()).isEqualTo(HdmiControlManager.RESULT_SUCCESS); assertThat(playbackDevice.isActiveSource()).isTrue(); - HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource( - playbackDevice.mAddress, mPhysicalAddress); - HdmiCecMessage textViewOn = HdmiCecMessageBuilder.buildTextViewOn(playbackDevice.mAddress, - ADDR_TV); + HdmiCecMessage activeSource = + HdmiCecMessageBuilder.buildActiveSource( + playbackDevice.getDeviceInfo().getLogicalAddress(), mPhysicalAddress); + HdmiCecMessage textViewOn = + HdmiCecMessageBuilder.buildTextViewOn( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(activeSource); assertThat(mNativeWrapper.getResultMessages()).contains(textViewOn); } @@ -523,21 +569,23 @@ public class OneTouchPlayActionTest { TestCallback callback = new TestCallback(); mHdmiControlService.oneTouchPlay(callback); - HdmiCecMessage reportPowerStatusMessage = HdmiCecMessageBuilder.buildReportPowerStatus( - Constants.ADDR_TV, - playbackDevice.mAddress, - HdmiControlManager.POWER_STATUS_ON - ); + HdmiCecMessage reportPowerStatusMessage = + HdmiCecMessageBuilder.buildReportPowerStatus( + Constants.ADDR_TV, + playbackDevice.getDeviceInfo().getLogicalAddress(), + HdmiControlManager.POWER_STATUS_ON); mNativeWrapper.onCecMessage(reportPowerStatusMessage); mTestLooper.dispatchAll(); assertThat(callback.getResult()).isEqualTo(HdmiControlManager.RESULT_SUCCESS); assertThat(playbackDevice.isActiveSource()).isTrue(); - HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource( - playbackDevice.mAddress, mPhysicalAddress); - HdmiCecMessage textViewOn = HdmiCecMessageBuilder.buildTextViewOn(playbackDevice.mAddress, - ADDR_TV); + HdmiCecMessage activeSource = + HdmiCecMessageBuilder.buildActiveSource( + playbackDevice.getDeviceInfo().getLogicalAddress(), mPhysicalAddress); + HdmiCecMessage textViewOn = + HdmiCecMessageBuilder.buildTextViewOn( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(activeSource); assertThat(mNativeWrapper.getResultMessages()).contains(textViewOn); } @@ -574,8 +622,9 @@ public class OneTouchPlayActionTest { mHdmiControlService.onStandby(HdmiControlService.STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); - HdmiCecMessage standbyMessage = HdmiCecMessageBuilder.buildStandby( - playbackDevice.mAddress, ADDR_TV); + HdmiCecMessage standbyMessage = + HdmiCecMessageBuilder.buildStandby( + playbackDevice.getDeviceInfo().getLogicalAddress(), ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(standbyMessage); } diff --git a/services/tests/servicestests/src/com/android/server/hdmi/PowerStatusMonitorActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/PowerStatusMonitorActionTest.java index a9880c0502e8..60c0f41a5720 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/PowerStatusMonitorActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/PowerStatusMonitorActionTest.java @@ -156,9 +156,9 @@ public class PowerStatusMonitorActionTest { assertPowerStatus(ADDR_PLAYBACK_1, HdmiControlManager.POWER_STATUS_UNKNOWN); mTestLooper.dispatchAll(); - HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - mTvDevice.mAddress, - ADDR_PLAYBACK_1); + HdmiCecMessage giveDevicePowerStatus = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + mTvDevice.getDeviceInfo().getLogicalAddress(), ADDR_PLAYBACK_1); assertThat(mNativeWrapper.getResultMessages()).contains(giveDevicePowerStatus); reportPowerStatus(ADDR_PLAYBACK_1, false, HdmiControlManager.POWER_STATUS_ON); @@ -195,9 +195,9 @@ public class PowerStatusMonitorActionTest { assertPowerStatus(ADDR_PLAYBACK_1, HdmiControlManager.POWER_STATUS_ON); mTestLooper.dispatchAll(); - HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - mTvDevice.mAddress, - ADDR_PLAYBACK_1); + HdmiCecMessage giveDevicePowerStatus = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + mTvDevice.getDeviceInfo().getLogicalAddress(), ADDR_PLAYBACK_1); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(giveDevicePowerStatus); @@ -224,14 +224,14 @@ public class PowerStatusMonitorActionTest { action.start(); mTestLooper.dispatchAll(); - HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - mTvDevice.mAddress, - ADDR_PLAYBACK_1); + HdmiCecMessage giveDevicePowerStatus = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + mTvDevice.getDeviceInfo().getLogicalAddress(), ADDR_PLAYBACK_1); assertThat(mNativeWrapper.getResultMessages()).contains(giveDevicePowerStatus); - HdmiCecMessage giveDevicePowerStatus2 = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - mTvDevice.mAddress, - ADDR_PLAYBACK_2); + HdmiCecMessage giveDevicePowerStatus2 = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + mTvDevice.getDeviceInfo().getLogicalAddress(), ADDR_PLAYBACK_2); assertThat(mNativeWrapper.getResultMessages()).contains(giveDevicePowerStatus2); } @@ -249,15 +249,15 @@ public class PowerStatusMonitorActionTest { action.start(); mTestLooper.dispatchAll(); - HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - mTvDevice.mAddress, - ADDR_PLAYBACK_1); + HdmiCecMessage giveDevicePowerStatus = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + mTvDevice.getDeviceInfo().getLogicalAddress(), ADDR_PLAYBACK_1); assertThat(mNativeWrapper.getResultMessages()).contains(giveDevicePowerStatus); - HdmiCecMessage giveDevicePowerStatus2 = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - mTvDevice.mAddress, - ADDR_PLAYBACK_2); + HdmiCecMessage giveDevicePowerStatus2 = + HdmiCecMessageBuilder.buildGiveDevicePowerStatus( + mTvDevice.getDeviceInfo().getLogicalAddress(), ADDR_PLAYBACK_2); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(giveDevicePowerStatus2); } @@ -270,7 +270,8 @@ public class PowerStatusMonitorActionTest { } private void reportPowerStatus(int logicalAddress, boolean broadcast, int powerStatus) { - int destination = broadcast ? ADDR_BROADCAST : mTvDevice.mAddress; + int destination = + broadcast ? ADDR_BROADCAST : mTvDevice.getDeviceInfo().getLogicalAddress(); HdmiCecMessage reportPowerStatus = HdmiCecMessageBuilder.buildReportPowerStatus( logicalAddress, destination, powerStatus); diff --git a/services/tests/servicestests/src/com/android/server/hdmi/SystemAudioAutoInitiationActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/SystemAudioAutoInitiationActionTest.java index 290e4b001aa4..c650f4b5862d 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/SystemAudioAutoInitiationActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/SystemAudioAutoInitiationActionTest.java @@ -167,12 +167,16 @@ public class SystemAudioAutoInitiationActionTest { HdmiCecMessage giveSystemAudioModeStatus = HdmiCecMessageBuilder.buildGiveSystemAudioModeStatus( - mHdmiCecLocalDeviceTv.mAddress, ADDR_AUDIO_SYSTEM); + mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), + ADDR_AUDIO_SYSTEM); assertThat(mNativeWrapper.getResultMessages()).contains(giveSystemAudioModeStatus); - HdmiCecMessage reportSystemAudioMode = HdmiCecMessageBuilder.buildReportSystemAudioMode( - ADDR_AUDIO_SYSTEM, mHdmiCecLocalDeviceTv.mAddress, true); + HdmiCecMessage reportSystemAudioMode = + HdmiCecMessageBuilder.buildReportSystemAudioMode( + ADDR_AUDIO_SYSTEM, + mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), + true); mHdmiControlService.handleCecCommand(reportSystemAudioMode); mTestLooper.dispatchAll(); @@ -193,12 +197,16 @@ public class SystemAudioAutoInitiationActionTest { HdmiCecMessage giveSystemAudioModeStatus = HdmiCecMessageBuilder.buildGiveSystemAudioModeStatus( - mHdmiCecLocalDeviceTv.mAddress, ADDR_AUDIO_SYSTEM); + mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), + ADDR_AUDIO_SYSTEM); assertThat(mNativeWrapper.getResultMessages()).contains(giveSystemAudioModeStatus); - HdmiCecMessage reportSystemAudioMode = HdmiCecMessageBuilder.buildReportSystemAudioMode( - ADDR_AUDIO_SYSTEM, mHdmiCecLocalDeviceTv.mAddress, true); + HdmiCecMessage reportSystemAudioMode = + HdmiCecMessageBuilder.buildReportSystemAudioMode( + ADDR_AUDIO_SYSTEM, + mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), + true); mHdmiControlService.handleCecCommand(reportSystemAudioMode); mTestLooper.dispatchAll(); @@ -217,12 +225,16 @@ public class SystemAudioAutoInitiationActionTest { HdmiCecMessage giveSystemAudioModeStatus = HdmiCecMessageBuilder.buildGiveSystemAudioModeStatus( - mHdmiCecLocalDeviceTv.mAddress, ADDR_AUDIO_SYSTEM); + mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), + ADDR_AUDIO_SYSTEM); assertThat(mNativeWrapper.getResultMessages()).contains(giveSystemAudioModeStatus); - HdmiCecMessage reportSystemAudioMode = HdmiCecMessageBuilder.buildReportSystemAudioMode( - ADDR_AUDIO_SYSTEM, mHdmiCecLocalDeviceTv.mAddress, false); + HdmiCecMessage reportSystemAudioMode = + HdmiCecMessageBuilder.buildReportSystemAudioMode( + ADDR_AUDIO_SYSTEM, + mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), + false); mHdmiControlService.handleCecCommand(reportSystemAudioMode); mTestLooper.dispatchAll(); @@ -244,12 +256,16 @@ public class SystemAudioAutoInitiationActionTest { HdmiCecMessage giveSystemAudioModeStatus = HdmiCecMessageBuilder.buildGiveSystemAudioModeStatus( - mHdmiCecLocalDeviceTv.mAddress, ADDR_AUDIO_SYSTEM); + mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), + ADDR_AUDIO_SYSTEM); assertThat(mNativeWrapper.getResultMessages()).contains(giveSystemAudioModeStatus); - HdmiCecMessage reportSystemAudioMode = HdmiCecMessageBuilder.buildReportSystemAudioMode( - ADDR_AUDIO_SYSTEM, mHdmiCecLocalDeviceTv.mAddress, true); + HdmiCecMessage reportSystemAudioMode = + HdmiCecMessageBuilder.buildReportSystemAudioMode( + ADDR_AUDIO_SYSTEM, + mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), + true); mHdmiControlService.handleCecCommand(reportSystemAudioMode); mTestLooper.dispatchAll(); @@ -271,12 +287,16 @@ public class SystemAudioAutoInitiationActionTest { HdmiCecMessage giveSystemAudioModeStatus = HdmiCecMessageBuilder.buildGiveSystemAudioModeStatus( - mHdmiCecLocalDeviceTv.mAddress, ADDR_AUDIO_SYSTEM); + mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), + ADDR_AUDIO_SYSTEM); assertThat(mNativeWrapper.getResultMessages()).contains(giveSystemAudioModeStatus); - HdmiCecMessage reportSystemAudioMode = HdmiCecMessageBuilder.buildReportSystemAudioMode( - ADDR_AUDIO_SYSTEM, mHdmiCecLocalDeviceTv.mAddress, false); + HdmiCecMessage reportSystemAudioMode = + HdmiCecMessageBuilder.buildReportSystemAudioMode( + ADDR_AUDIO_SYSTEM, + mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), + false); mHdmiControlService.handleCecCommand(reportSystemAudioMode); mTestLooper.dispatchAll(); @@ -296,7 +316,8 @@ public class SystemAudioAutoInitiationActionTest { HdmiCecMessage giveSystemAudioModeStatus = HdmiCecMessageBuilder.buildGiveSystemAudioModeStatus( - mHdmiCecLocalDeviceTv.mAddress, ADDR_AUDIO_SYSTEM); + mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), + ADDR_AUDIO_SYSTEM); assertThat(mNativeWrapper.getResultMessages()).contains(giveSystemAudioModeStatus); mNativeWrapper.clearResultMessages(); @@ -321,7 +342,8 @@ public class SystemAudioAutoInitiationActionTest { HdmiCecMessage giveSystemAudioModeStatus = HdmiCecMessageBuilder.buildGiveSystemAudioModeStatus( - mHdmiCecLocalDeviceTv.mAddress, ADDR_AUDIO_SYSTEM); + mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(), + ADDR_AUDIO_SYSTEM); assertThat(mNativeWrapper.getResultMessages()).contains(giveSystemAudioModeStatus); for (int i = 0; i < RETRIES_ON_TIMEOUT; i++) { diff --git a/services/tests/servicestests/src/com/android/server/hdmi/SystemAudioInitiationActionFromAvrTest.java b/services/tests/servicestests/src/com/android/server/hdmi/SystemAudioInitiationActionFromAvrTest.java index 2019a1651c5f..3a8808b99903 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/SystemAudioInitiationActionFromAvrTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/SystemAudioInitiationActionFromAvrTest.java @@ -197,6 +197,7 @@ public class SystemAudioInitiationActionFromAvrTest { } }; mHdmiCecLocalDeviceAudioSystem.init(); + mHdmiCecLocalDeviceAudioSystem.setDeviceInfo(mDeviceInfoForTests); } @Test |