am 035edcdf: Allow broadcast for <Set System Audio Mode>.

* commit '035edcdf62d67badd7b9bd6e7fd44bffc790fcca':
  Allow broadcast for <Set System Audio Mode>.
This commit is contained in:
Jungshik Jang
2014-08-27 09:10:36 +00:00
committed by Android Git Automerger
2 changed files with 12 additions and 9 deletions

View File

@@ -119,6 +119,8 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
// other CEC devices since they might not have logical address.
private final ArraySet<Integer> mCecSwitches = new ArraySet<Integer>();
private final HdmiLogger mSafeLogger = new HdmiLogger(TAG);
HdmiCecLocalDeviceTv(HdmiControlService service) {
super(service, HdmiDeviceInfo.DEVICE_TV);
mPrevPortId = Constants.INVALID_PORT_ID;
@@ -698,6 +700,9 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
// # Seq 25
void setSystemAudioMode(boolean on, boolean updateSetting) {
mSafeLogger.debug(String.format("System Audio Mode change[old:%b new:%b]",
mSystemAudioActivated, on));
if (updateSetting) {
mService.writeBooleanSetting(Global.HDMI_SYSTEM_AUDIO_ENABLED, on);
}
@@ -711,7 +716,6 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
}
private void updateAudioManagerForSystemAudio(boolean on) {
// TODO: remove output device, once update AudioManager api.
mService.getAudioManager().setHdmiSystemAudioSupported(on);
}
@@ -931,6 +935,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
protected boolean handleSetSystemAudioMode(HdmiCecMessage message) {
assertRunOnServiceThread();
if (!isMessageForSystemAudio(message)) {
mSafeLogger.warning("Invalid <Set System Audio Mode> message:" + message);
return false;
}
SystemAudioActionFromAvr action = new SystemAudioActionFromAvr(this,
@@ -944,6 +949,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
protected boolean handleSystemAudioModeStatus(HdmiCecMessage message) {
assertRunOnServiceThread();
if (!isMessageForSystemAudio(message)) {
mSafeLogger.warning("Invalid <System Audio Mode Status> message:" + message);
return false;
}
setSystemAudioMode(HdmiUtils.parseCommandParamSystemAudioStatus(message), true);
@@ -992,13 +998,10 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
}
private boolean isMessageForSystemAudio(HdmiCecMessage message) {
if (message.getSource() != Constants.ADDR_AUDIO_SYSTEM
|| message.getDestination() != Constants.ADDR_TV
|| getAvrDeviceInfo() == null) {
Slog.w(TAG, "Skip abnormal CecMessage: " + message);
return false;
}
return true;
return message.getSource() == Constants.ADDR_AUDIO_SYSTEM
&& (message.getDestination() == Constants.ADDR_TV
|| message.getDestination() == Constants.ADDR_BROADCAST)
&& getAvrDeviceInfo() != null;
}
/**

View File

@@ -160,7 +160,7 @@ public final class HdmiCecMessage {
case Constants.MESSAGE_GIVE_AUDIO_STATUS:
return "Give Audio Status";
case Constants.MESSAGE_SET_SYSTEM_AUDIO_MODE:
return "System Audio Mode";
return "Set System Audio Mode";
case Constants.MESSAGE_REPORT_AUDIO_STATUS:
return "Report Audio Status";
case Constants.MESSAGE_GIVE_SYSTEM_AUDIO_MODE_STATUS: