CEC: Do not send <Active Source> when TV wakes up by one touch play

TV should respect the device that wakes up TV by one touch play
to keep its active source status by not sending <Active Source>.

Bug: 19039773

Change-Id: I0b27e95dcf986df90b25cc2a1891acd82940f13e
This commit is contained in:
Jinsuk Kim
2015-01-16 15:49:16 +09:00
parent 964c00dd7b
commit 2ab6d9fff3
2 changed files with 11 additions and 1 deletions

View File

@@ -76,6 +76,15 @@ final class DelayedMessageBuffer {
}
}
boolean isBuffered(int opcode) {
for (HdmiCecMessage message : mBuffer) {
if (message.getOpcode() == opcode) {
return true;
}
}
return false;
}
void processAllMessages() {
// Use the copied buffer.
ArrayList<HdmiCecMessage> copiedBuffer = new ArrayList<HdmiCecMessage>(mBuffer);

View File

@@ -1427,7 +1427,8 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
} else {
int activePath = mService.getPhysicalAddress();
setActivePath(activePath);
if (!routingForBootup) {
if (!routingForBootup
&& !mDelayedMessageBuffer.isBuffered(Constants.MESSAGE_ACTIVE_SOURCE)) {
mService.sendCecCommand(HdmiCecMessageBuilder.buildActiveSource(mAddress,
activePath));
}