Handle <Feature Abort> after <System Audio Mode Request>.

- Fix some wrong return values.

Bug: 15841647
Change-Id: Ia4596e87204196b48429d55da4945f84de51a07b
This commit is contained in:
Yuncheol Heo
2014-07-11 16:06:40 +09:00
parent 04dc9953b4
commit d05f67f972
2 changed files with 8 additions and 3 deletions

View File

@@ -540,7 +540,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
assertRunOnServiceThread();
HdmiCecDeviceInfo avr = getAvrDeviceInfo();
if (avr == null) {
invokeCallback(callback, HdmiControlManager.RESULT_SOURCE_NOT_AVAILABLE);
invokeCallback(callback, HdmiControlManager.RESULT_TARGET_NOT_AVAILABLE);
return;
}

View File

@@ -78,7 +78,7 @@ abstract class SystemAudioAction extends FeatureAction {
addTimer(mState, mTargetAudioStatus ? ON_TIMEOUT_MS : OFF_TIMEOUT_MS);
} else {
setSystemAudioMode(false);
finishWithCallback(HdmiControlManager.RESULT_EXCEPTION);
finishWithCallback(HdmiControlManager.RESULT_COMMUNICATION_FAILED);
}
}
});
@@ -102,7 +102,12 @@ abstract class SystemAudioAction extends FeatureAction {
final boolean processCommand(HdmiCecMessage cmd) {
switch (mState) {
case STATE_WAIT_FOR_SET_SYSTEM_AUDIO_MODE:
// TODO: Handle <FeatureAbort> of <SystemAudioModeRequest>
if (cmd.getOpcode() == Constants.MESSAGE_FEATURE_ABORT
&& cmd.getParams()[0] == Constants.MESSAGE_SYSTEM_AUDIO_MODE_REQUEST) {
setSystemAudioMode(false);
finishWithCallback(HdmiControlManager.RESULT_EXCEPTION);
return true;
}
if (cmd.getOpcode() != Constants.MESSAGE_SET_SYSTEM_AUDIO_MODE
|| !HdmiUtils.checkCommandSource(cmd, mAvrLogicalAddress, TAG)) {
return false;