summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiCecMessageValidator.java8
-rw-r--r--services/tests/servicestests/src/com/android/server/hdmi/HdmiCecMessageValidatorTest.java9
2 files changed, 12 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecMessageValidator.java b/services/core/java/com/android/server/hdmi/HdmiCecMessageValidator.java
index e06a05e31152..a3ae72e18961 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecMessageValidator.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecMessageValidator.java
@@ -148,17 +148,17 @@ public class HdmiCecMessageValidator {
addValidationInfo(Constants.MESSAGE_SET_MENU_LANGUAGE,
new AsciiValidator(3), DEST_BROADCAST);
+ ParameterValidator statusRequestValidator = new OneByteRangeValidator(0x01, 0x03);
addValidationInfo(
Constants.MESSAGE_DECK_CONTROL, new OneByteRangeValidator(0x01, 0x04), DEST_DIRECT);
addValidationInfo(
Constants.MESSAGE_DECK_STATUS, new OneByteRangeValidator(0x11, 0x1F), DEST_DIRECT);
- addValidationInfo(
- Constants.MESSAGE_GIVE_DECK_STATUS,
- new OneByteRangeValidator(0x01, 0x03),
- DEST_DIRECT);
+ addValidationInfo(Constants.MESSAGE_GIVE_DECK_STATUS, statusRequestValidator, DEST_DIRECT);
addValidationInfo(Constants.MESSAGE_PLAY, new PlayModeValidator(), DEST_DIRECT);
// TODO: Handle messages for the Tuner Control.
+ addValidationInfo(
+ Constants.MESSAGE_GIVE_TUNER_DEVICE_STATUS, statusRequestValidator, DEST_DIRECT);
// Messages for the Vendor Specific Commands.
VariableLengthValidator maxLengthValidator = new VariableLengthValidator(0, 14);
diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecMessageValidatorTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecMessageValidatorTest.java
index 6cc8db9957cd..5b31f8c18660 100644
--- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecMessageValidatorTest.java
+++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecMessageValidatorTest.java
@@ -377,13 +377,20 @@ public class HdmiCecMessageValidatorTest {
}
@Test
- public void isValid_giveDeckStatus() {
+ public void isValid_statusRequest() {
+ assertMessageValidity("40:08:01").isEqualTo(OK);
+ assertMessageValidity("40:08:02:5C").isEqualTo(OK);
assertMessageValidity("40:1A:01:F8").isEqualTo(OK);
assertMessageValidity("40:1A:03").isEqualTo(OK);
+ assertMessageValidity("4F:08:01").isEqualTo(ERROR_DESTINATION);
+ assertMessageValidity("F0:08:03").isEqualTo(ERROR_SOURCE);
assertMessageValidity("4F:1A:01").isEqualTo(ERROR_DESTINATION);
assertMessageValidity("F0:1A:03").isEqualTo(ERROR_SOURCE);
+ assertMessageValidity("40:08").isEqualTo(ERROR_PARAMETER_SHORT);
assertMessageValidity("40:1A").isEqualTo(ERROR_PARAMETER_SHORT);
+ assertMessageValidity("40:08:00").isEqualTo(ERROR_PARAMETER);
+ assertMessageValidity("40:08:05").isEqualTo(ERROR_PARAMETER);
assertMessageValidity("40:1A:00").isEqualTo(ERROR_PARAMETER);
assertMessageValidity("40:1A:04").isEqualTo(ERROR_PARAMETER);
}