diff options
| -rw-r--r-- | services/core/java/com/android/server/hdmi/HdmiCecController.java | 4 | ||||
| -rw-r--r-- | services/core/java/com/android/server/hdmi/HdmiControlService.java | 9 |
2 files changed, 12 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecController.java b/services/core/java/com/android/server/hdmi/HdmiCecController.java index 86be585e5d23..6174e5418caf 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecController.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecController.java @@ -580,7 +580,9 @@ final class HdmiCecController { @ServiceThreadOnly private void onReceiveCommand(HdmiCecMessage message) { assertRunOnServiceThread(); - if (isAcceptableAddress(message.getDestination()) && mService.handleCecCommand(message)) { + if ((isAcceptableAddress(message.getDestination()) + || !mService.isAddressAllocated()) + && mService.handleCecCommand(message)) { return; } // Not handled message, so we will reply it with <Feature Abort>. diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index df4674c958b0..9aaf33c90df2 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -380,6 +380,9 @@ public class HdmiControlService extends SystemService { case Constants.MESSAGE_TEXT_VIEW_ON: bufferImageOrTextViewOn(message); return true; + case Constants.MESSAGE_SYSTEM_AUDIO_MODE_REQUEST: + bufferSystemAudioModeRequest(message); + return true; // Add here if new message that needs to buffer default: // Do not need to buffer messages other than above @@ -412,6 +415,12 @@ public class HdmiControlService extends SystemService { } } + private void bufferSystemAudioModeRequest(HdmiCecMessage message) { + if (!replaceMessageIfBuffered(message, Constants.MESSAGE_SYSTEM_AUDIO_MODE_REQUEST)) { + mBuffer.add(message); + } + } + // Returns true if the message is replaced private boolean replaceMessageIfBuffered(HdmiCecMessage message, int opcode) { for (int i = 0; i < mBuffer.size(); i++) { |