Pass caller information through setAndBroadcastActiveSource
Bug: 166760714 Test: make Change-Id: If53863a35962ea30e341aefbe9abfe0ad163e049
This commit is contained in:
@@ -379,7 +379,8 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource {
|
||||
assertRunOnServiceThread();
|
||||
if (reason == mService.INITIATED_BY_ENABLE_CEC) {
|
||||
mService.setAndBroadcastActiveSource(mService.getPhysicalAddress(),
|
||||
getDeviceInfo().getDeviceType(), Constants.ADDR_BROADCAST);
|
||||
getDeviceInfo().getDeviceType(), Constants.ADDR_BROADCAST,
|
||||
"HdmiCecLocalDeviceAudioSystem#onAddressAllocated()");
|
||||
}
|
||||
mService.sendCecCommand(
|
||||
HdmiCecMessageBuilder.buildReportPhysicalAddressCommand(
|
||||
@@ -1324,7 +1325,8 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource {
|
||||
if (getRoutingPort() == Constants.CEC_SWITCH_HOME && mService.isPlaybackDevice()) {
|
||||
routeToInputFromPortId(Constants.CEC_SWITCH_HOME);
|
||||
mService.setAndBroadcastActiveSourceFromOneDeviceType(
|
||||
message.getSource(), mService.getPhysicalAddress());
|
||||
message.getSource(), mService.getPhysicalAddress(),
|
||||
"HdmiCecLocalDeviceAudioSystem#handleRoutingChangeAndInformationForSwitch()");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -102,7 +102,8 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource {
|
||||
assertRunOnServiceThread();
|
||||
if (reason == mService.INITIATED_BY_ENABLE_CEC) {
|
||||
mService.setAndBroadcastActiveSource(mService.getPhysicalAddress(),
|
||||
getDeviceInfo().getDeviceType(), Constants.ADDR_BROADCAST);
|
||||
getDeviceInfo().getDeviceType(), Constants.ADDR_BROADCAST,
|
||||
"HdmiCecLocalDevicePlayback#onAddressAllocated()");
|
||||
}
|
||||
mService.sendCecCommand(HdmiCecMessageBuilder.buildReportPhysicalAddressCommand(
|
||||
mAddress, mService.getPhysicalAddress(), mDeviceType));
|
||||
@@ -413,7 +414,8 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource {
|
||||
}
|
||||
switch (mPlaybackDeviceActionOnRoutingControl) {
|
||||
case WAKE_UP_AND_SEND_ACTIVE_SOURCE:
|
||||
setAndBroadcastActiveSource(message, physicalAddress);
|
||||
setAndBroadcastActiveSource(message, physicalAddress,
|
||||
"HdmiCecLocalDevicePlayback#handleRoutingChangeAndInformation()");
|
||||
break;
|
||||
case WAKE_UP_ONLY:
|
||||
mService.wakeUp();
|
||||
|
||||
@@ -166,7 +166,8 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice {
|
||||
// If current device is the target path, set to Active Source.
|
||||
// If the path is under the current device, should switch
|
||||
if (physicalAddress == mService.getPhysicalAddress() && mService.isPlaybackDevice()) {
|
||||
setAndBroadcastActiveSource(message, physicalAddress);
|
||||
setAndBroadcastActiveSource(message, physicalAddress,
|
||||
"HdmiCecLocalDeviceSource#handleSetStreamPath()");
|
||||
} else if (physicalAddress != mService.getPhysicalAddress() || !isActiveSource()) {
|
||||
// Invalidate the active source if stream path is set to other physical address or
|
||||
// our physical address while not active source
|
||||
@@ -236,9 +237,10 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice {
|
||||
// since service can decide who will be the active source when the device supports
|
||||
// multiple device types in this method.
|
||||
// This method should only be called when the device can be the active source.
|
||||
protected void setAndBroadcastActiveSource(HdmiCecMessage message, int physicalAddress) {
|
||||
protected void setAndBroadcastActiveSource(HdmiCecMessage message, int physicalAddress,
|
||||
String caller) {
|
||||
mService.setAndBroadcastActiveSource(
|
||||
physicalAddress, getDeviceInfo().getDeviceType(), message.getSource());
|
||||
physicalAddress, getDeviceInfo().getDeviceType(), message.getSource(), caller);
|
||||
}
|
||||
|
||||
// Indicates if current device is the active source or not
|
||||
|
||||
@@ -3250,13 +3250,13 @@ public class HdmiControlService extends SystemService {
|
||||
// For example, when receiving broadcast messages, all the device types will call this
|
||||
// method but only one of them will be the Active Source.
|
||||
protected void setAndBroadcastActiveSource(
|
||||
int physicalAddress, int deviceType, int source) {
|
||||
int physicalAddress, int deviceType, int source, String caller) {
|
||||
// If the device has both playback and audio system logical addresses,
|
||||
// playback will claim active source. Otherwise audio system will.
|
||||
if (deviceType == HdmiDeviceInfo.DEVICE_PLAYBACK) {
|
||||
HdmiCecLocalDevicePlayback playback = playback();
|
||||
playback.setActiveSource(playback.getDeviceInfo().getLogicalAddress(), physicalAddress,
|
||||
"HdmiControlService#setAndBroadcastActiveSource");
|
||||
caller);
|
||||
playback.wakeUpIfActiveSource();
|
||||
playback.maySendActiveSource(source);
|
||||
}
|
||||
@@ -3265,8 +3265,7 @@ public class HdmiControlService extends SystemService {
|
||||
HdmiCecLocalDeviceAudioSystem audioSystem = audioSystem();
|
||||
if (playback() == null) {
|
||||
audioSystem.setActiveSource(audioSystem.getDeviceInfo().getLogicalAddress(),
|
||||
physicalAddress,
|
||||
"HdmiControlService#setAndBroadcastActiveSource");
|
||||
physicalAddress, caller);
|
||||
audioSystem.wakeUpIfActiveSource();
|
||||
audioSystem.maySendActiveSource(source);
|
||||
}
|
||||
@@ -3279,20 +3278,19 @@ public class HdmiControlService extends SystemService {
|
||||
// and this method updates Active Source in all the device types sharing the same
|
||||
// Physical Address.
|
||||
protected void setAndBroadcastActiveSourceFromOneDeviceType(
|
||||
int sourceAddress, int physicalAddress) {
|
||||
int sourceAddress, int physicalAddress, String caller) {
|
||||
// If the device has both playback and audio system logical addresses,
|
||||
// playback will claim active source. Otherwise audio system will.
|
||||
HdmiCecLocalDevicePlayback playback = playback();
|
||||
HdmiCecLocalDeviceAudioSystem audioSystem = audioSystem();
|
||||
if (playback != null) {
|
||||
playback.setActiveSource(playback.getDeviceInfo().getLogicalAddress(), physicalAddress,
|
||||
"HdmiControlService#setAndBroadcastActiveSource");
|
||||
caller);
|
||||
playback.wakeUpIfActiveSource();
|
||||
playback.maySendActiveSource(sourceAddress);
|
||||
} else if (audioSystem != null) {
|
||||
audioSystem.setActiveSource(audioSystem.getDeviceInfo().getLogicalAddress(),
|
||||
physicalAddress,
|
||||
"HdmiControlService#setAndBroadcastActiveSource");
|
||||
physicalAddress, caller);
|
||||
audioSystem.wakeUpIfActiveSource();
|
||||
audioSystem.maySendActiveSource(sourceAddress);
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ final class OneTouchPlayAction extends HdmiCecFeatureAction {
|
||||
// Because only source device can create this action, it's safe to cast.
|
||||
HdmiCecLocalDeviceSource source = source();
|
||||
source.mService.setAndBroadcastActiveSourceFromOneDeviceType(
|
||||
mTargetAddress, getSourcePath());
|
||||
mTargetAddress, getSourcePath(), "OneTouchPlayAction#broadcastActiveSource()");
|
||||
// When OneTouchPlay is called, client side should be responsible to send out the intent
|
||||
// of which internal source, for example YouTube, it would like to switch to.
|
||||
// Here we only update the active port and the active source records in the local
|
||||
|
||||
@@ -119,7 +119,8 @@ public class SystemAudioInitiationActionFromAvr extends HdmiCecFeatureAction {
|
||||
// claim Active Source and start to query TV system audio mode support.
|
||||
if (audioSystem().mService.isPlaybackDevice()) {
|
||||
audioSystem().mService.setAndBroadcastActiveSourceFromOneDeviceType(
|
||||
Constants.ADDR_BROADCAST, getSourcePath());
|
||||
Constants.ADDR_BROADCAST, getSourcePath(),
|
||||
"SystemAudioInitiationActionFromAvr#handleActiveSourceTimeout()");
|
||||
mState = STATE_WAITING_FOR_TV_SUPPORT;
|
||||
queryTvSystemAudioModeSupport();
|
||||
} else {
|
||||
|
||||
@@ -150,7 +150,7 @@ public class SystemAudioInitiationActionFromAvrTest {
|
||||
|
||||
@Override
|
||||
public void setAndBroadcastActiveSourceFromOneDeviceType(
|
||||
int sourceAddress, int physicalAddress) {
|
||||
int sourceAddress, int physicalAddress, String caller) {
|
||||
mBroadcastActiveSource = true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user