Merge "CEC: Avoid setting op in disabled mode" into lmp-mr1-dev

This commit is contained in:
Jinsuk Kim
2014-12-06 10:19:54 +00:00
committed by Android (Google) Code Review

View File

@@ -379,7 +379,7 @@ public final class HdmiControlService extends SystemService {
}
mWakeUpMessageReceived = false;
if (isTvDevice()) {
if (isTvDeviceEnabled()) {
mCecController.setOption(OPTION_CEC_AUTO_WAKEUP, toInt(tv().getAutoWakeup()));
}
int reason = -1;
@@ -430,11 +430,15 @@ public final class HdmiControlService extends SystemService {
setControlEnabled(enabled);
break;
case Global.HDMI_CONTROL_AUTO_WAKEUP_ENABLED:
tv().setAutoWakeup(enabled);
if (isTvDeviceEnabled()) {
tv().setAutoWakeup(enabled);
}
setCecOption(OPTION_CEC_AUTO_WAKEUP, toInt(enabled));
break;
case Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED:
tv().setAutoDeviceOff(enabled);
if (isTvDeviceEnabled()) {
tv().setAutoDeviceOff(enabled);
}
// No need to propagate to HAL.
break;
case Global.MHL_INPUT_SWITCHING_ENABLED:
@@ -665,11 +669,7 @@ public final class HdmiControlService extends SystemService {
@ServiceThreadOnly
HdmiDeviceInfo getDeviceInfo(int logicalAddress) {
assertRunOnServiceThread();
HdmiCecLocalDeviceTv tv = tv();
if (tv == null) {
return null;
}
return tv.getCecDeviceInfo(logicalAddress);
return tv() == null ? null : tv().getCecDeviceInfo(logicalAddress);
}
/**
@@ -1431,8 +1431,8 @@ public final class HdmiControlService extends SystemService {
runOnServiceThread(new Runnable() {
@Override
public void run() {
if (!isTvDevice()) {
Slog.w(TAG, "No TV is available.");
if (!isTvDeviceEnabled()) {
Slog.w(TAG, "TV device is not enabled.");
return;
}
tv().startOneTouchRecord(recorderAddress, recordSource);
@@ -1446,8 +1446,8 @@ public final class HdmiControlService extends SystemService {
runOnServiceThread(new Runnable() {
@Override
public void run() {
if (!isTvDevice()) {
Slog.w(TAG, "No TV is available.");
if (!isTvDeviceEnabled()) {
Slog.w(TAG, "TV device is not enabled.");
return;
}
tv().stopOneTouchRecord(recorderAddress);
@@ -1462,8 +1462,8 @@ public final class HdmiControlService extends SystemService {
runOnServiceThread(new Runnable() {
@Override
public void run() {
if (!isTvDevice()) {
Slog.w(TAG, "No TV is available.");
if (!isTvDeviceEnabled()) {
Slog.w(TAG, "TV device is not enabled.");
return;
}
tv().startTimerRecording(recorderAddress, sourceType, recordSource);
@@ -1478,8 +1478,8 @@ public final class HdmiControlService extends SystemService {
runOnServiceThread(new Runnable() {
@Override
public void run() {
if (!isTvDevice()) {
Slog.w(TAG, "No TV is available.");
if (!isTvDeviceEnabled()) {
Slog.w(TAG, "TV device is not enabled.");
return;
}
tv().clearTimerRecording(recorderAddress, sourceType, recordSource);
@@ -1800,6 +1800,10 @@ public final class HdmiControlService extends SystemService {
return mLocalDevices.contains(HdmiDeviceInfo.DEVICE_TV);
}
boolean isTvDeviceEnabled() {
return isTvDevice() && tv() != null;
}
private HdmiCecLocalDevicePlayback playback() {
return (HdmiCecLocalDevicePlayback)
mCecController.getLocalDevice(HdmiDeviceInfo.DEVICE_PLAYBACK);
@@ -1907,7 +1911,7 @@ public final class HdmiControlService extends SystemService {
assertRunOnServiceThread();
mLanguage = language;
if (isTvDevice()) {
if (isTvDeviceEnabled()) {
tv().broadcastMenuLanguage(language);
}
}
@@ -2131,6 +2135,7 @@ public final class HdmiControlService extends SystemService {
@ServiceThreadOnly
void changeInputForMhl(int portId, boolean contentOn) {
assertRunOnServiceThread();
if (tv() == null) return;
final int lastInput = contentOn ? tv().getActivePortId() : Constants.INVALID_PORT_ID;
tv().doManualPortSwitching(portId, new IHdmiControlCallback.Stub() {
@Override