Replace mIsActiveSource by isActiveSource()
Bug: 166760714 Test: atest HdmiCecLocalDevicePlaybackTest Change-Id: I3244ecb9bd1976d6cd258e777acab3a61ec229bc
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.server.hdmi;
|
||||
|
||||
import android.annotation.CallSuper;
|
||||
import android.hardware.hdmi.HdmiControlManager;
|
||||
import android.hardware.hdmi.HdmiDeviceInfo;
|
||||
import android.hardware.hdmi.IHdmiControlCallback;
|
||||
@@ -170,7 +171,7 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource {
|
||||
void onHotplug(int portId, boolean connected) {
|
||||
assertRunOnServiceThread();
|
||||
mCecMessageCache.flushAll();
|
||||
// We'll not clear mIsActiveSource on the hotplug event to pass CETC 11.2.2-2 ~ 3.
|
||||
// We'll not invalidate the active source on the hotplug event to pass CETC 11.2.2-2 ~ 3.
|
||||
if (!connected) {
|
||||
getWakeLock().release();
|
||||
}
|
||||
@@ -183,13 +184,12 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource {
|
||||
if (!mService.isControlEnabled()) {
|
||||
return;
|
||||
}
|
||||
if (mIsActiveSource) {
|
||||
if (isActiveSource()) {
|
||||
mService.sendCecCommand(HdmiCecMessageBuilder.buildInactiveSource(
|
||||
mAddress, mService.getPhysicalAddress()));
|
||||
}
|
||||
boolean wasActiveSource = mIsActiveSource;
|
||||
boolean wasActiveSource = isActiveSource();
|
||||
// Invalidate the internal active source record when goes to standby
|
||||
// This set will also update mIsActiveSource
|
||||
mService.setActiveSource(Constants.ADDR_INVALID, Constants.INVALID_PHYSICAL_ADDRESS,
|
||||
"HdmiCecLocalDevicePlayback#onStandby()");
|
||||
if (initiatedByCec || !mAutoTvOff || !wasActiveSource) {
|
||||
@@ -234,12 +234,13 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource {
|
||||
}
|
||||
|
||||
@Override
|
||||
@CallSuper
|
||||
@ServiceThreadOnly
|
||||
@VisibleForTesting
|
||||
void setIsActiveSource(boolean on) {
|
||||
protected void setActiveSource(int logicalAddress, int physicalAddress, String caller) {
|
||||
assertRunOnServiceThread();
|
||||
super.setIsActiveSource(on);
|
||||
if (on) {
|
||||
super.setActiveSource(logicalAddress, physicalAddress, caller);
|
||||
if (isActiveSource()) {
|
||||
getWakeLock().acquire();
|
||||
} else {
|
||||
getWakeLock().release();
|
||||
@@ -296,7 +297,7 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource {
|
||||
|
||||
@Override
|
||||
protected void wakeUpIfActiveSource() {
|
||||
if (!mIsActiveSource) {
|
||||
if (!isActiveSource()) {
|
||||
return;
|
||||
}
|
||||
// Wake up the device if the power is in standby mode, or its screen is off -
|
||||
@@ -451,7 +452,7 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource {
|
||||
@Override
|
||||
protected void dump(final IndentingPrintWriter pw) {
|
||||
super.dump(pw);
|
||||
pw.println("mIsActiveSource: " + mIsActiveSource);
|
||||
pw.println("isActiveSource(): " + isActiveSource());
|
||||
pw.println("mAutoTvOff:" + mAutoTvOff);
|
||||
}
|
||||
|
||||
@@ -472,7 +473,7 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource {
|
||||
@Override
|
||||
public void acquire() {
|
||||
mWakeLock.acquire();
|
||||
HdmiLogger.debug("active source: %b. Wake lock acquired", mIsActiveSource);
|
||||
HdmiLogger.debug("active source: %b. Wake lock acquired", isActiveSource());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.server.hdmi;
|
||||
|
||||
import android.annotation.CallSuper;
|
||||
import android.hardware.hdmi.HdmiControlManager;
|
||||
import android.hardware.hdmi.HdmiPortInfo;
|
||||
import android.hardware.hdmi.IHdmiControlCallback;
|
||||
@@ -36,10 +37,6 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice {
|
||||
|
||||
private static final String TAG = "HdmiCecLocalDeviceSource";
|
||||
|
||||
// Indicate if current device is Active Source or not
|
||||
@VisibleForTesting
|
||||
protected boolean mIsActiveSource = false;
|
||||
|
||||
// Device has cec switch functionality or not.
|
||||
// Default is false.
|
||||
protected boolean mIsSwitchDevice = HdmiProperties.is_switch().orElse(false);
|
||||
@@ -78,7 +75,7 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice {
|
||||
if (mService.getPortInfo(portId).getType() == HdmiPortInfo.PORT_OUTPUT) {
|
||||
mCecMessageCache.flushAll();
|
||||
}
|
||||
// We'll not clear mIsActiveSource on the hotplug event to pass CETC 11.2.2-2 ~ 3.
|
||||
// We'll not invalidate the active source on the hotplug event to pass CETC 11.2.2-2 ~ 3.
|
||||
if (connected) {
|
||||
mService.wakeUp();
|
||||
}
|
||||
@@ -118,10 +115,21 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice {
|
||||
// Nothing to do.
|
||||
}
|
||||
|
||||
@Override
|
||||
@CallSuper
|
||||
@ServiceThreadOnly
|
||||
void setActiveSource(int logicalAddress, int physicalAddress, String caller) {
|
||||
boolean wasActiveSource = isActiveSource();
|
||||
super.setActiveSource(logicalAddress, physicalAddress, caller);
|
||||
if (wasActiveSource && !isActiveSource()) {
|
||||
onActiveSourceLost();
|
||||
}
|
||||
}
|
||||
|
||||
@ServiceThreadOnly
|
||||
protected void setActiveSource(int physicalAddress, String caller) {
|
||||
assertRunOnServiceThread();
|
||||
// Invalidate the internal active source record. This will also update mIsActiveSource.
|
||||
// Invalidate the internal active source record.
|
||||
ActiveSource activeSource = ActiveSource.of(Constants.ADDR_INVALID, physicalAddress);
|
||||
setActiveSource(activeSource, caller);
|
||||
}
|
||||
@@ -135,7 +143,6 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice {
|
||||
if (!getActiveSource().equals(activeSource)) {
|
||||
setActiveSource(activeSource, "HdmiCecLocalDeviceSource#handleActiveSource()");
|
||||
}
|
||||
setIsActiveSource(physicalAddress == mService.getPhysicalAddress());
|
||||
updateDevicePowerStatus(logicalAddress, HdmiControlManager.POWER_STATUS_ON);
|
||||
if (isRoutingControlFeatureEnabled()) {
|
||||
switchInputOnReceivingNewActivePath(physicalAddress);
|
||||
@@ -241,18 +248,15 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice {
|
||||
physicalAddress, getDeviceInfo().getDeviceType(), message.getSource());
|
||||
}
|
||||
|
||||
// Indicates if current device is the active source or not
|
||||
@ServiceThreadOnly
|
||||
void setIsActiveSource(boolean on) {
|
||||
assertRunOnServiceThread();
|
||||
boolean wasActiveSource = mIsActiveSource;
|
||||
mIsActiveSource = on;
|
||||
if (wasActiveSource && !mIsActiveSource) {
|
||||
onActiveSourceLost();
|
||||
}
|
||||
protected boolean isActiveSource() {
|
||||
return getActiveSource().equals(getDeviceInfo().getLogicalAddress(),
|
||||
getDeviceInfo().getPhysicalAddress());
|
||||
}
|
||||
|
||||
protected void wakeUpIfActiveSource() {
|
||||
if (!mIsActiveSource) {
|
||||
if (!isActiveSource()) {
|
||||
return;
|
||||
}
|
||||
// Wake up the device
|
||||
@@ -261,7 +265,7 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice {
|
||||
}
|
||||
|
||||
protected void maySendActiveSource(int dest) {
|
||||
if (!mIsActiveSource) {
|
||||
if (!isActiveSource()) {
|
||||
return;
|
||||
}
|
||||
addAndStartAction(new ActiveSourceAction(this, dest));
|
||||
|
||||
@@ -1596,7 +1596,7 @@ public class HdmiControlService extends SystemService {
|
||||
if (isPlaybackDevice()) {
|
||||
// if playback device itself is the active source,
|
||||
// return its own device info.
|
||||
if (playback() != null && playback().mIsActiveSource) {
|
||||
if (playback() != null && playback().isActiveSource()) {
|
||||
return playback().getDeviceInfo();
|
||||
}
|
||||
// Otherwise get the active source and look for it from the device list
|
||||
@@ -3234,20 +3234,12 @@ public class HdmiControlService extends SystemService {
|
||||
mActiveSource.physicalAddress = physicalAddress;
|
||||
}
|
||||
// If the current device is a source device, check if the current Active Source matches
|
||||
// the local device info. Set mIsActiveSource of the local device accordingly.
|
||||
// the local device info.
|
||||
for (HdmiCecLocalDevice device : getAllLocalDevices()) {
|
||||
// mIsActiveSource only exists in source device, ignore this setting if the current
|
||||
// device is not an HdmiCecLocalDeviceSource.
|
||||
if (!(device instanceof HdmiCecLocalDeviceSource)) {
|
||||
device.addActiveSourceHistoryItem(new ActiveSource(logicalAddress, physicalAddress),
|
||||
false, caller);
|
||||
continue;
|
||||
}
|
||||
boolean deviceIsActiveSource =
|
||||
logicalAddress == device.getDeviceInfo().getLogicalAddress()
|
||||
&& physicalAddress == getPhysicalAddress();
|
||||
|
||||
((HdmiCecLocalDeviceSource) device).setIsActiveSource(deviceIsActiveSource);
|
||||
device.addActiveSourceHistoryItem(new ActiveSource(logicalAddress, physicalAddress),
|
||||
deviceIsActiveSource, caller);
|
||||
}
|
||||
@@ -3263,17 +3255,18 @@ public class HdmiControlService extends SystemService {
|
||||
// playback will claim active source. Otherwise audio system will.
|
||||
if (deviceType == HdmiDeviceInfo.DEVICE_PLAYBACK) {
|
||||
HdmiCecLocalDevicePlayback playback = playback();
|
||||
playback.setIsActiveSource(true);
|
||||
playback.setActiveSource(playback.getDeviceInfo().getLogicalAddress(), physicalAddress,
|
||||
"HdmiControlService#setAndBroadcastActiveSource");
|
||||
playback.wakeUpIfActiveSource();
|
||||
playback.maySendActiveSource(source);
|
||||
}
|
||||
|
||||
if (deviceType == HdmiDeviceInfo.DEVICE_AUDIO_SYSTEM) {
|
||||
HdmiCecLocalDeviceAudioSystem audioSystem = audioSystem();
|
||||
if (playback() != null) {
|
||||
audioSystem.setIsActiveSource(false);
|
||||
} else {
|
||||
audioSystem.setIsActiveSource(true);
|
||||
if (playback() == null) {
|
||||
audioSystem.setActiveSource(audioSystem.getDeviceInfo().getLogicalAddress(),
|
||||
physicalAddress,
|
||||
"HdmiControlService#setAndBroadcastActiveSource");
|
||||
audioSystem.wakeUpIfActiveSource();
|
||||
audioSystem.maySendActiveSource(source);
|
||||
}
|
||||
@@ -3292,18 +3285,16 @@ public class HdmiControlService extends SystemService {
|
||||
HdmiCecLocalDevicePlayback playback = playback();
|
||||
HdmiCecLocalDeviceAudioSystem audioSystem = audioSystem();
|
||||
if (playback != null) {
|
||||
playback.setIsActiveSource(true);
|
||||
playback.setActiveSource(playback.getDeviceInfo().getLogicalAddress(), physicalAddress,
|
||||
"HdmiControlService#setAndBroadcastActiveSource");
|
||||
playback.wakeUpIfActiveSource();
|
||||
playback.maySendActiveSource(sourceAddress);
|
||||
if (audioSystem != null) {
|
||||
audioSystem.setIsActiveSource(false);
|
||||
}
|
||||
} else {
|
||||
if (audioSystem != null) {
|
||||
audioSystem.setIsActiveSource(true);
|
||||
audioSystem.wakeUpIfActiveSource();
|
||||
audioSystem.maySendActiveSource(sourceAddress);
|
||||
}
|
||||
} else if (audioSystem != null) {
|
||||
audioSystem.setActiveSource(audioSystem.getDeviceInfo().getLogicalAddress(),
|
||||
physicalAddress,
|
||||
"HdmiControlService#setAndBroadcastActiveSource");
|
||||
audioSystem.wakeUpIfActiveSource();
|
||||
audioSystem.maySendActiveSource(sourceAddress);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -160,7 +160,7 @@ public class ActiveSourceActionTest {
|
||||
assertThat(playbackDevice.getActiveSource().logicalAddress).isEqualTo(
|
||||
playbackDevice.mAddress);
|
||||
assertThat(playbackDevice.getActiveSource().physicalAddress).isEqualTo(mPhysicalAddress);
|
||||
assertThat(playbackDevice.mIsActiveSource).isTrue();
|
||||
assertThat(playbackDevice.isActiveSource()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -30,10 +30,15 @@ import static com.android.server.hdmi.HdmiControlService.STANDBY_SCREEN_OFF;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import android.content.Context;
|
||||
import android.hardware.hdmi.HdmiDeviceInfo;
|
||||
import android.hardware.hdmi.HdmiPortInfo;
|
||||
import android.media.AudioManager;
|
||||
import android.os.Handler;
|
||||
import android.os.IPowerManager;
|
||||
import android.os.IThermalService;
|
||||
import android.os.Looper;
|
||||
import android.os.PowerManager;
|
||||
import android.os.test.TestLooper;
|
||||
import android.platform.test.annotations.Presubmit;
|
||||
|
||||
@@ -47,6 +52,8 @@ import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.JUnit4;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -81,8 +88,17 @@ public class HdmiCecLocalDeviceAudioSystemTest {
|
||||
private HdmiPortInfo[] mHdmiPortInfo;
|
||||
private boolean mWokenUp;
|
||||
|
||||
@Mock private IPowerManager mIPowerManagerMock;
|
||||
@Mock private IThermalService mIThermalServiceMock;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
Context context = InstrumentationRegistry.getTargetContext();
|
||||
mMyLooper = mTestLooper.getLooper();
|
||||
PowerManager powerManager = new PowerManager(context, mIPowerManagerMock,
|
||||
mIThermalServiceMock, new Handler(mMyLooper));
|
||||
mHdmiControlService =
|
||||
new HdmiControlService(InstrumentationRegistry.getTargetContext()) {
|
||||
@Override
|
||||
@@ -166,6 +182,11 @@ public class HdmiCecLocalDeviceAudioSystemTest {
|
||||
return defVal;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
PowerManager getPowerManager() {
|
||||
return powerManager;
|
||||
}
|
||||
};
|
||||
|
||||
mHdmiControlService.setHdmiCecVolumeControlEnabled(true);
|
||||
@@ -173,11 +194,6 @@ public class HdmiCecLocalDeviceAudioSystemTest {
|
||||
mMyLooper = mTestLooper.getLooper();
|
||||
mHdmiCecLocalDeviceAudioSystem = new HdmiCecLocalDeviceAudioSystem(mHdmiControlService);
|
||||
mHdmiCecLocalDevicePlayback = new HdmiCecLocalDevicePlayback(mHdmiControlService) {
|
||||
@Override
|
||||
void setIsActiveSource(boolean on) {
|
||||
mIsActiveSource = on;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getPreferredAddress() {
|
||||
return ADDR_PLAYBACK_1;
|
||||
@@ -827,4 +843,68 @@ public class HdmiCecLocalDeviceAudioSystemTest {
|
||||
|
||||
assertThat(mNativeWrapper.getResultMessages()).doesNotContain(unexpected);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setActiveSource_localDevice_playback() {
|
||||
mHdmiControlService.setActiveSource(mHdmiCecLocalDevicePlayback.mAddress,
|
||||
SELF_PHYSICAL_ADDRESS,
|
||||
"HdmiControlServiceTest");
|
||||
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().logicalAddress).isEqualTo(
|
||||
mHdmiCecLocalDevicePlayback.mAddress);
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().physicalAddress).isEqualTo(
|
||||
SELF_PHYSICAL_ADDRESS);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isTrue();
|
||||
assertThat(mHdmiCecLocalDeviceAudioSystem.isActiveSource()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setActiveSource_localDevice_audio() {
|
||||
mHdmiControlService.setActiveSource(mHdmiCecLocalDeviceAudioSystem.mAddress,
|
||||
SELF_PHYSICAL_ADDRESS,
|
||||
"HdmiControlServiceTest");
|
||||
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().logicalAddress).isEqualTo(
|
||||
mHdmiCecLocalDeviceAudioSystem.mAddress);
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().physicalAddress).isEqualTo(
|
||||
SELF_PHYSICAL_ADDRESS);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse();
|
||||
assertThat(mHdmiCecLocalDeviceAudioSystem.isActiveSource()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setActiveSource_remoteDevice() {
|
||||
mHdmiControlService.setActiveSource(Constants.ADDR_TV, 0x0000, "HdmiControlServiceTest");
|
||||
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().logicalAddress).isEqualTo(
|
||||
Constants.ADDR_TV);
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().physicalAddress).isEqualTo(0x000);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse();
|
||||
assertThat(mHdmiCecLocalDeviceAudioSystem.isActiveSource()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setActiveSource_nonCecDevice() {
|
||||
mHdmiControlService.setActiveSource(Constants.ADDR_INVALID, 0x1234,
|
||||
"HdmiControlServiceTest");
|
||||
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().logicalAddress).isEqualTo(
|
||||
Constants.ADDR_INVALID);
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().physicalAddress).isEqualTo(0x1234);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse();
|
||||
assertThat(mHdmiCecLocalDeviceAudioSystem.isActiveSource()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setActiveSource_unknown() {
|
||||
mHdmiControlService.setActiveSource(Constants.ADDR_INVALID,
|
||||
Constants.INVALID_PHYSICAL_ADDRESS, "HdmiControlServiceTest");
|
||||
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().logicalAddress).isEqualTo(
|
||||
Constants.ADDR_INVALID);
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().physicalAddress).isEqualTo(
|
||||
Constants.INVALID_PHYSICAL_ADDRESS);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse();
|
||||
assertThat(mHdmiCecLocalDeviceAudioSystem.isActiveSource()).isFalse();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -267,106 +267,114 @@ public class HdmiCecLocalDevicePlaybackTest {
|
||||
@Test
|
||||
public void handleRoutingChange_otherDevice_None() {
|
||||
mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost =
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.NONE;
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(true);
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.NONE;
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress,
|
||||
mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest");
|
||||
mStandby = false;
|
||||
HdmiCecMessage message =
|
||||
HdmiCecMessageBuilder.buildRoutingChange(ADDR_TV, 0x0000, 0x5000);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.handleRoutingChange(message)).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isFalse();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse();
|
||||
assertThat(mStandby).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleRoutingChange_otherDevice_StandbyNow() {
|
||||
mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost =
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW;
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(true);
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW;
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress,
|
||||
mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest");
|
||||
mStandby = false;
|
||||
HdmiCecMessage message =
|
||||
HdmiCecMessageBuilder.buildRoutingChange(ADDR_TV, 0x0000, 0x5000);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.handleRoutingChange(message)).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isFalse();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse();
|
||||
assertThat(mStandby).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleRoutingChange_otherDevice_StandbyNow_InactiveSource() {
|
||||
mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost =
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW;
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(false);
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW;
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000,
|
||||
"HdmiCecLocalDevicePlaybackTest");
|
||||
mStandby = false;
|
||||
HdmiCecMessage message =
|
||||
HdmiCecMessageBuilder.buildRoutingChange(ADDR_TV, 0x0000, 0x5000);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.handleRoutingChange(message)).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isFalse();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse();
|
||||
assertThat(mStandby).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleRoutingChange_sameDevice_StandbyNow_ActiveSource() {
|
||||
mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost =
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW;
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(true);
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW;
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress,
|
||||
mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest");
|
||||
mStandby = false;
|
||||
HdmiCecMessage message =
|
||||
HdmiCecMessageBuilder.buildRoutingChange(ADDR_TV, 0x0000,
|
||||
mPlaybackPhysicalAddress);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.handleRoutingChange(message)).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isTrue();
|
||||
assertThat(mStandby).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleRoutingInformation_otherDevice_None() {
|
||||
mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost =
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.NONE;
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(true);
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.NONE;
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress,
|
||||
mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest");
|
||||
mStandby = false;
|
||||
HdmiCecMessage message =
|
||||
HdmiCecMessageBuilder.buildRoutingInformation(ADDR_TV, 0x5000);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.handleRoutingInformation(message)).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isFalse();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse();
|
||||
assertThat(mStandby).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleRoutingInformation_otherDevice_StandbyNow() {
|
||||
mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost =
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW;
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(true);
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW;
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress,
|
||||
mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest");
|
||||
mStandby = false;
|
||||
HdmiCecMessage message =
|
||||
HdmiCecMessageBuilder.buildRoutingInformation(ADDR_TV, 0x5000);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.handleRoutingInformation(message)).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isFalse();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse();
|
||||
assertThat(mStandby).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleRoutingInformation_otherDevice_StandbyNow_InactiveSource() {
|
||||
mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost =
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW;
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(false);
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW;
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000,
|
||||
"HdmiCecLocalDevicePlaybackTest");
|
||||
mStandby = false;
|
||||
HdmiCecMessage message =
|
||||
HdmiCecMessageBuilder.buildRoutingInformation(ADDR_TV, 0x5000);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.handleRoutingInformation(message)).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isFalse();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse();
|
||||
assertThat(mStandby).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleRoutingInformation_sameDevice_StandbyNow_ActiveSource() {
|
||||
mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost =
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW;
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(true);
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW;
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress,
|
||||
mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest");
|
||||
mStandby = false;
|
||||
HdmiCecMessage message =
|
||||
HdmiCecMessageBuilder.buildRoutingInformation(ADDR_TV,
|
||||
mPlaybackPhysicalAddress);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.handleRoutingInformation(message)).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isTrue();
|
||||
assertThat(mStandby).isFalse();
|
||||
}
|
||||
|
||||
@@ -436,7 +444,8 @@ public class HdmiCecLocalDevicePlaybackTest {
|
||||
mHdmiCecLocalDevicePlayback.mService.writeStringSetting(
|
||||
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
|
||||
HdmiControlManager.SEND_STANDBY_ON_SLEEP_TO_TV);
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(false);
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000,
|
||||
"HdmiCecLocalDevicePlaybackTest");
|
||||
mHdmiCecLocalDevicePlayback.setAutoDeviceOff(true);
|
||||
mHdmiCecLocalDevicePlayback.onStandby(false, HdmiControlService.STANDBY_SCREEN_OFF);
|
||||
mTestLooper.dispatchAll();
|
||||
@@ -455,7 +464,8 @@ public class HdmiCecLocalDevicePlaybackTest {
|
||||
mHdmiCecLocalDevicePlayback.mService.writeStringSetting(
|
||||
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
|
||||
HdmiControlManager.SEND_STANDBY_ON_SLEEP_BROADCAST);
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(false);
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000,
|
||||
"HdmiCecLocalDevicePlaybackTest");
|
||||
mHdmiCecLocalDevicePlayback.setAutoDeviceOff(true);
|
||||
mHdmiCecLocalDevicePlayback.onStandby(false, HdmiControlService.STANDBY_SCREEN_OFF);
|
||||
mTestLooper.dispatchAll();
|
||||
@@ -474,7 +484,8 @@ public class HdmiCecLocalDevicePlaybackTest {
|
||||
mHdmiCecLocalDevicePlayback.mService.writeStringSetting(
|
||||
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
|
||||
HdmiControlManager.SEND_STANDBY_ON_SLEEP_NONE);
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(false);
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000,
|
||||
"HdmiCecLocalDevicePlaybackTest");
|
||||
mHdmiCecLocalDevicePlayback.setAutoDeviceOff(true);
|
||||
mHdmiCecLocalDevicePlayback.onStandby(false, HdmiControlService.STANDBY_SCREEN_OFF);
|
||||
mTestLooper.dispatchAll();
|
||||
@@ -493,7 +504,8 @@ public class HdmiCecLocalDevicePlaybackTest {
|
||||
mHdmiCecLocalDevicePlayback.mService.writeStringSetting(
|
||||
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
|
||||
HdmiControlManager.SEND_STANDBY_ON_SLEEP_TO_TV);
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(true);
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress,
|
||||
mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest");
|
||||
mHdmiCecLocalDevicePlayback.setAutoDeviceOff(true);
|
||||
mHdmiCecLocalDevicePlayback.onStandby(false, HdmiControlService.STANDBY_SCREEN_OFF);
|
||||
mTestLooper.dispatchAll();
|
||||
@@ -512,7 +524,8 @@ public class HdmiCecLocalDevicePlaybackTest {
|
||||
mHdmiCecLocalDevicePlayback.mService.writeStringSetting(
|
||||
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
|
||||
HdmiControlManager.SEND_STANDBY_ON_SLEEP_BROADCAST);
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(true);
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress,
|
||||
mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest");
|
||||
mHdmiCecLocalDevicePlayback.setAutoDeviceOff(true);
|
||||
mHdmiCecLocalDevicePlayback.onStandby(false, HdmiControlService.STANDBY_SCREEN_OFF);
|
||||
mTestLooper.dispatchAll();
|
||||
@@ -531,7 +544,8 @@ public class HdmiCecLocalDevicePlaybackTest {
|
||||
mHdmiCecLocalDevicePlayback.mService.writeStringSetting(
|
||||
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
|
||||
HdmiControlManager.SEND_STANDBY_ON_SLEEP_NONE);
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(true);
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress,
|
||||
mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest");
|
||||
mHdmiCecLocalDevicePlayback.setAutoDeviceOff(true);
|
||||
mHdmiCecLocalDevicePlayback.onStandby(false, HdmiControlService.STANDBY_SCREEN_OFF);
|
||||
mTestLooper.dispatchAll();
|
||||
@@ -709,7 +723,7 @@ public class HdmiCecLocalDevicePlaybackTest {
|
||||
mPlaybackLogicalAddress, ADDR_TV);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isTrue();
|
||||
assertThat(mNativeWrapper.getResultMessages()).containsAllOf(pressed, released);
|
||||
}
|
||||
|
||||
@@ -729,7 +743,7 @@ public class HdmiCecLocalDevicePlaybackTest {
|
||||
mPlaybackLogicalAddress, ADDR_AUDIO_SYSTEM);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isTrue();
|
||||
assertThat(mNativeWrapper.getResultMessages()).containsAllOf(pressed, released);
|
||||
}
|
||||
|
||||
@@ -748,7 +762,7 @@ public class HdmiCecLocalDevicePlaybackTest {
|
||||
mPlaybackLogicalAddress, ADDR_TV);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isFalse();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse();
|
||||
assertThat(mNativeWrapper.getResultMessages()).containsAllOf(pressed, released);
|
||||
}
|
||||
|
||||
@@ -767,7 +781,7 @@ public class HdmiCecLocalDevicePlaybackTest {
|
||||
mPlaybackLogicalAddress, ADDR_AUDIO_SYSTEM);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isFalse();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse();
|
||||
assertThat(mNativeWrapper.getResultMessages()).containsAllOf(pressed, released);
|
||||
}
|
||||
|
||||
@@ -813,19 +827,20 @@ public class HdmiCecLocalDevicePlaybackTest {
|
||||
|
||||
assertThat(mHdmiCecLocalDevicePlayback.getActiveSource().logicalAddress).isEqualTo(
|
||||
mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress());
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleSetStreamPath_otherDevice_None() {
|
||||
mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost =
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.NONE;
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(true);
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.NONE;
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress,
|
||||
mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest");
|
||||
mStandby = false;
|
||||
HdmiCecMessage message =
|
||||
HdmiCecMessageBuilder.buildSetStreamPath(ADDR_TV, 0x5000);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.handleSetStreamPath(message)).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isFalse();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse();
|
||||
assertThat(mStandby).isFalse();
|
||||
}
|
||||
|
||||
@@ -833,12 +848,13 @@ public class HdmiCecLocalDevicePlaybackTest {
|
||||
public void handleSetStreamPath_otherDevice_StandbyNow() {
|
||||
mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost =
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW;
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(true);
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress,
|
||||
mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest");
|
||||
mStandby = false;
|
||||
HdmiCecMessage message =
|
||||
HdmiCecMessageBuilder.buildSetStreamPath(ADDR_TV, 0x5000);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.handleSetStreamPath(message)).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isFalse();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse();
|
||||
assertThat(mStandby).isTrue();
|
||||
}
|
||||
|
||||
@@ -846,12 +862,13 @@ public class HdmiCecLocalDevicePlaybackTest {
|
||||
public void handleSetStreamPath_otherDevice_StandbyNow_InactiveSource() {
|
||||
mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost =
|
||||
HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW;
|
||||
mHdmiCecLocalDevicePlayback.setIsActiveSource(false);
|
||||
mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000,
|
||||
"HdmiCecLocalDevicePlaybackTest");
|
||||
mStandby = false;
|
||||
HdmiCecMessage message =
|
||||
HdmiCecMessageBuilder.buildSetStreamPath(ADDR_TV, 0x5000);
|
||||
assertThat(mHdmiCecLocalDevicePlayback.handleSetStreamPath(message)).isTrue();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isFalse();
|
||||
assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse();
|
||||
assertThat(mStandby).isFalse();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,28 +15,28 @@
|
||||
*/
|
||||
package com.android.server.hdmi;
|
||||
|
||||
import static android.os.SystemClock.sleep;
|
||||
import static com.android.server.hdmi.HdmiControlService.INITIATED_BY_ENABLE_CEC;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static junit.framework.Assert.assertEquals;
|
||||
|
||||
import android.hardware.hdmi.HdmiControlManager;
|
||||
import android.hardware.hdmi.HdmiPortInfo;
|
||||
import android.hardware.hdmi.IHdmiControlCallback;
|
||||
import android.os.Looper;
|
||||
import android.os.SystemProperties;
|
||||
import android.os.test.TestLooper;
|
||||
import android.util.Slog;
|
||||
|
||||
import androidx.test.InstrumentationRegistry;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.JUnit4;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Tests for {@link HdmiControlServiceBinderAPITest} class.
|
||||
*/
|
||||
@@ -137,11 +137,6 @@ public class HdmiControlServiceBinderAPITest {
|
||||
mMyLooper = mTestLooper.getLooper();
|
||||
|
||||
mPlaybackDevice = new HdmiCecLocalDevicePlayback(mHdmiControlService) {
|
||||
@Override
|
||||
void setIsActiveSource(boolean on) {
|
||||
mIsActiveSource = on;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void wakeUpIfActiveSource() {}
|
||||
|
||||
@@ -186,13 +181,13 @@ public class HdmiControlServiceBinderAPITest {
|
||||
}
|
||||
});
|
||||
assertEquals(mResult, -1);
|
||||
assertThat(mPlaybackDevice.mIsActiveSource).isFalse();
|
||||
assertThat(mPlaybackDevice.isActiveSource()).isFalse();
|
||||
|
||||
mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC);
|
||||
mTestLooper.dispatchAll();
|
||||
assertThat(mHdmiControlService.isAddressAllocated()).isTrue();
|
||||
assertEquals(mResult, HdmiControlManager.RESULT_SUCCESS);
|
||||
assertThat(mPlaybackDevice.mIsActiveSource).isTrue();
|
||||
assertThat(mPlaybackDevice.isActiveSource()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -207,6 +202,6 @@ public class HdmiControlServiceBinderAPITest {
|
||||
}
|
||||
});
|
||||
assertEquals(mResult, HdmiControlManager.RESULT_SUCCESS);
|
||||
assertThat(mPlaybackDevice.mIsActiveSource).isTrue();
|
||||
assertThat(mPlaybackDevice.isActiveSource()).isTrue();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -405,82 +405,6 @@ public class HdmiControlServiceTest {
|
||||
assertThat(callback2.mVolumeControlEnabled).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setActiveSource_localDevice_playback() {
|
||||
int physicalAddress = 0x1000;
|
||||
mNativeWrapper.setPhysicalAddress(physicalAddress);
|
||||
|
||||
mHdmiControlService.setActiveSource(mMyPlaybackDevice.mAddress, physicalAddress,
|
||||
"HdmiControlServiceTest");
|
||||
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().logicalAddress).isEqualTo(
|
||||
mMyPlaybackDevice.mAddress);
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().physicalAddress).isEqualTo(
|
||||
physicalAddress);
|
||||
assertThat(mMyPlaybackDevice.mIsActiveSource).isTrue();
|
||||
assertThat(mMyAudioSystemDevice.mIsActiveSource).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setActiveSource_localDevice_audio() {
|
||||
int physicalAddress = 0x1000;
|
||||
mNativeWrapper.setPhysicalAddress(physicalAddress);
|
||||
|
||||
mHdmiControlService.setActiveSource(mMyAudioSystemDevice.mAddress, physicalAddress,
|
||||
"HdmiControlServiceTest");
|
||||
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().logicalAddress).isEqualTo(
|
||||
mMyAudioSystemDevice.mAddress);
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().physicalAddress).isEqualTo(
|
||||
physicalAddress);
|
||||
assertThat(mMyPlaybackDevice.mIsActiveSource).isFalse();
|
||||
assertThat(mMyAudioSystemDevice.mIsActiveSource).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setActiveSource_remoteDevice() {
|
||||
int physicalAddress = 0x1000;
|
||||
mNativeWrapper.setPhysicalAddress(physicalAddress);
|
||||
|
||||
mHdmiControlService.setActiveSource(Constants.ADDR_TV, 0x0000, "HdmiControlServiceTest");
|
||||
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().logicalAddress).isEqualTo(
|
||||
Constants.ADDR_TV);
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().physicalAddress).isEqualTo(0x000);
|
||||
assertThat(mMyPlaybackDevice.mIsActiveSource).isFalse();
|
||||
assertThat(mMyAudioSystemDevice.mIsActiveSource).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setActiveSource_nonCecDevice() {
|
||||
int physicalAddress = 0x1000;
|
||||
mNativeWrapper.setPhysicalAddress(physicalAddress);
|
||||
|
||||
mHdmiControlService.setActiveSource(Constants.ADDR_INVALID, 0x1234,
|
||||
"HdmiControlServiceTest");
|
||||
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().logicalAddress).isEqualTo(
|
||||
Constants.ADDR_INVALID);
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().physicalAddress).isEqualTo(0x1234);
|
||||
assertThat(mMyPlaybackDevice.mIsActiveSource).isFalse();
|
||||
assertThat(mMyAudioSystemDevice.mIsActiveSource).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setActiveSource_unknown() {
|
||||
int physicalAddress = 0x1000;
|
||||
mNativeWrapper.setPhysicalAddress(physicalAddress);
|
||||
|
||||
mHdmiControlService.setActiveSource(Constants.ADDR_INVALID,
|
||||
Constants.INVALID_PHYSICAL_ADDRESS, "HdmiControlServiceTest");
|
||||
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().logicalAddress).isEqualTo(
|
||||
Constants.ADDR_INVALID);
|
||||
assertThat(mHdmiControlService.getLocalActiveSource().physicalAddress).isEqualTo(
|
||||
Constants.INVALID_PHYSICAL_ADDRESS);
|
||||
assertThat(mMyPlaybackDevice.mIsActiveSource).isFalse();
|
||||
assertThat(mMyAudioSystemDevice.mIsActiveSource).isFalse();
|
||||
}
|
||||
|
||||
private static class VolumeControlFeatureCallback extends
|
||||
IHdmiCecVolumeControlFeatureListener.Stub {
|
||||
|
||||
Reference in New Issue
Block a user