am ad1e3d7d: CEC: Buffer <Set System Audio Mode>
* commit 'ad1e3d7df42376cd2a257b6c3b2fed540658a6e3': CEC: Buffer <Set System Audio Mode>
This commit is contained in:
@@ -54,6 +54,7 @@ final class DelayedMessageBuffer {
|
|||||||
mBuffer.add(message);
|
mBuffer.add(message);
|
||||||
break;
|
break;
|
||||||
case Constants.MESSAGE_INITIATE_ARC:
|
case Constants.MESSAGE_INITIATE_ARC:
|
||||||
|
case Constants.MESSAGE_SET_SYSTEM_AUDIO_MODE:
|
||||||
mBuffer.add(message);
|
mBuffer.add(message);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -742,7 +742,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
|
|||||||
@ServiceThreadOnly
|
@ServiceThreadOnly
|
||||||
void onNewAvrAdded(HdmiDeviceInfo avr) {
|
void onNewAvrAdded(HdmiDeviceInfo avr) {
|
||||||
assertRunOnServiceThread();
|
assertRunOnServiceThread();
|
||||||
if (getSystemAudioModeSetting()) {
|
if (getSystemAudioModeSetting() && !isSystemAudioActivated()) {
|
||||||
addAndStartAction(new SystemAudioAutoInitiationAction(this, avr.getLogicalAddress()));
|
addAndStartAction(new SystemAudioAutoInitiationAction(this, avr.getLogicalAddress()));
|
||||||
}
|
}
|
||||||
if (isArcFeatureEnabled() && !hasAction(SetArcTransmissionStateAction.class)) {
|
if (isArcFeatureEnabled() && !hasAction(SetArcTransmissionStateAction.class)) {
|
||||||
@@ -1037,6 +1037,11 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
|
|||||||
protected boolean handleSetSystemAudioMode(HdmiCecMessage message) {
|
protected boolean handleSetSystemAudioMode(HdmiCecMessage message) {
|
||||||
assertRunOnServiceThread();
|
assertRunOnServiceThread();
|
||||||
if (!isMessageForSystemAudio(message)) {
|
if (!isMessageForSystemAudio(message)) {
|
||||||
|
if (getAvrDeviceInfo() == null) {
|
||||||
|
// AVR may not have been discovered yet. Delay the message processing.
|
||||||
|
mDelayedMessageBuffer.add(message);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
HdmiLogger.warning("Invalid <Set System Audio Mode> message:" + message);
|
HdmiLogger.warning("Invalid <Set System Audio Mode> message:" + message);
|
||||||
mService.maySendFeatureAbortCommand(message, Constants.ABORT_REFUSED);
|
mService.maySendFeatureAbortCommand(message, Constants.ABORT_REFUSED);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user