Remove RECORD_TV_SCREEN handling from playback device
Record TV Screen should only be supported by TV panel devices. Playback device may respond <Feature Abort>[Unrecognized Opcode]. Bug: 180103617 Test: atest com.android.server.hdmi Change-Id: I241cf0fcf7a96d603221f89d7daf58daeb732d69
This commit is contained in:
@@ -788,10 +788,7 @@ abstract class HdmiCecLocalDevice {
|
||||
}
|
||||
|
||||
protected boolean handleRecordTvScreen(HdmiCecMessage message) {
|
||||
// The default behavior of <Record TV Screen> is replying <Feature Abort> with
|
||||
// "Cannot provide source".
|
||||
mService.maySendFeatureAbortCommand(message, Constants.ABORT_CANNOT_PROVIDE_SOURCE);
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
protected boolean handleTimerClearedStatus(HdmiCecMessage message) {
|
||||
|
||||
@@ -1079,7 +1079,10 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
|
||||
message.getSource(),
|
||||
HdmiControlManager.ONE_TOUCH_RECORD_PREVIOUS_RECORDING_IN_PROGRESS);
|
||||
}
|
||||
return super.handleRecordTvScreen(message);
|
||||
// The default behavior of <Record TV Screen> is replying <Feature Abort> with
|
||||
// "Cannot provide source".
|
||||
mService.maySendFeatureAbortCommand(message, Constants.ABORT_CANNOT_PROVIDE_SOURCE);
|
||||
return true;
|
||||
}
|
||||
|
||||
int recorderAddress = message.getSource();
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.android.server.hdmi;
|
||||
|
||||
import static com.android.server.hdmi.Constants.ABORT_UNRECOGNIZED_OPCODE;
|
||||
import static com.android.server.hdmi.Constants.ADDR_AUDIO_SYSTEM;
|
||||
import static com.android.server.hdmi.Constants.ADDR_BROADCAST;
|
||||
import static com.android.server.hdmi.Constants.ADDR_INVALID;
|
||||
@@ -1586,4 +1587,18 @@ public class HdmiCecLocalDevicePlaybackTest {
|
||||
assertThat(features.contains(
|
||||
Constants.RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU)).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void doesNotSupportRecordTvScreen() {
|
||||
HdmiCecMessage recordTvScreen = new HdmiCecMessage(ADDR_TV, mPlaybackLogicalAddress,
|
||||
Constants.MESSAGE_RECORD_TV_SCREEN, HdmiCecMessage.EMPTY_PARAM);
|
||||
|
||||
mNativeWrapper.onCecMessage(recordTvScreen);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage featureAbort = HdmiCecMessageBuilder.buildFeatureAbortCommand(
|
||||
mPlaybackLogicalAddress, ADDR_TV, Constants.MESSAGE_RECORD_TV_SCREEN,
|
||||
ABORT_UNRECOGNIZED_OPCODE);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(featureAbort);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,9 +15,11 @@
|
||||
*/
|
||||
package com.android.server.hdmi;
|
||||
|
||||
import static com.android.server.hdmi.Constants.ABORT_UNRECOGNIZED_OPCODE;
|
||||
import static com.android.server.hdmi.Constants.ADDR_AUDIO_SYSTEM;
|
||||
import static com.android.server.hdmi.Constants.ADDR_BROADCAST;
|
||||
import static com.android.server.hdmi.Constants.ADDR_PLAYBACK_1;
|
||||
import static com.android.server.hdmi.Constants.ADDR_RECORDER_1;
|
||||
import static com.android.server.hdmi.Constants.ADDR_TV;
|
||||
import static com.android.server.hdmi.HdmiControlService.INITIATED_BY_ENABLE_CEC;
|
||||
|
||||
@@ -484,4 +486,18 @@ public class HdmiCecLocalDeviceTvTest {
|
||||
ADDR_AUDIO_SYSTEM);
|
||||
assertThat(mNativeWrapper.getResultMessages()).contains(reportArcInitiated);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsRecordTvScreen() {
|
||||
HdmiCecMessage recordTvScreen = new HdmiCecMessage(ADDR_RECORDER_1, mTvLogicalAddress,
|
||||
Constants.MESSAGE_RECORD_TV_SCREEN, HdmiCecMessage.EMPTY_PARAM);
|
||||
|
||||
mNativeWrapper.onCecMessage(recordTvScreen);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
HdmiCecMessage featureAbort = HdmiCecMessageBuilder.buildFeatureAbortCommand(
|
||||
mTvLogicalAddress, ADDR_RECORDER_1, Constants.MESSAGE_RECORD_TV_SCREEN,
|
||||
ABORT_UNRECOGNIZED_OPCODE);
|
||||
assertThat(mNativeWrapper.getResultMessages()).doesNotContain(featureAbort);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user