CEC: Send <ReportMenuStatus:active> together sending <ActiveSource>.

- Some TV doesn't ask the menu status actively, so we'll send it
  together when sending <ActiveSource>.

Bug: 18109775
Change-Id: I4f7378bb9feaa11d9c9e5a2f6633e19cd41a5fc5
This commit is contained in:
Yuncheol Heo
2014-10-27 17:29:42 +09:00
parent 5b820a8aa1
commit 8ecb7219df

View File

@@ -158,7 +158,7 @@ final class HdmiCecLocalDevicePlayback extends HdmiCecLocalDevice {
assertRunOnServiceThread();
int physicalAddress = HdmiUtils.twoBytesToInt(message.getParams());
maySetActiveSource(physicalAddress);
maySendActiveSource();
maySendActiveSource(message.getSource());
wakeUpIfActiveSource();
return true; // Broadcast message.
}
@@ -198,10 +198,13 @@ final class HdmiCecLocalDevicePlayback extends HdmiCecLocalDevice {
}
}
private void maySendActiveSource() {
private void maySendActiveSource(int dest) {
if (mIsActiveSource) {
mService.sendCecCommand(HdmiCecMessageBuilder.buildActiveSource(
mAddress, mService.getPhysicalAddress()));
// Always reports menu-status active to receive RCP.
mService.sendCecCommand(HdmiCecMessageBuilder.buildReportMenuStatus(
mAddress, dest, Constants.MENU_STATE_ACTIVATED));
}
}
@@ -209,7 +212,7 @@ final class HdmiCecLocalDevicePlayback extends HdmiCecLocalDevice {
@ServiceThreadOnly
protected boolean handleRequestActiveSource(HdmiCecMessage message) {
assertRunOnServiceThread();
maySendActiveSource();
maySendActiveSource(message.getSource());
return true; // Broadcast message.
}