Loading services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java +8 −2 Original line number Diff line number Diff line Loading @@ -263,7 +263,9 @@ abstract class HdmiCecLocalDevice { case Constants.MESSAGE_GIVE_DEVICE_POWER_STATUS: return handleGiveDevicePowerStatus(message); case Constants.MESSAGE_MENU_REQUEST: return handleGiveDeviceMenuStatus(message); return handleMenuRequest(message); case Constants.MESSAGE_MENU_STATUS: return handleMenuStatus(message); case Constants.MESSAGE_VENDOR_COMMAND: return handleVendorCommand(message); case Constants.MESSAGE_VENDOR_COMMAND_WITH_ID: Loading Loading @@ -503,13 +505,17 @@ abstract class HdmiCecLocalDevice { return true; } protected boolean handleGiveDeviceMenuStatus(HdmiCecMessage message) { protected boolean handleMenuRequest(HdmiCecMessage message) { // Always report menu active to receive Remote Control. mService.sendCecCommand(HdmiCecMessageBuilder.buildReportMenuStatus( mAddress, message.getSource(), Constants.MENU_STATE_ACTIVATED)); return true; } protected boolean handleMenuStatus(HdmiCecMessage message) { return false; } protected boolean handleVendorCommand(HdmiCecMessage message) { mService.invokeVendorCommandListeners(mDeviceType, message.getSource(), message.getParams(), false); Loading services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java +6 −0 Original line number Diff line number Diff line Loading @@ -1645,6 +1645,12 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { invokeDeviceEventListener(newInfo, HdmiControlManager.DEVICE_EVENT_UPDATE_DEVICE); } @Override protected boolean handleMenuStatus(HdmiCecMessage message) { // Do nothing and just return true not to prevent from responding <Feature Abort>. return true; } @Override protected void dump(final IndentingPrintWriter pw) { super.dump(pw); Loading services/core/java/com/android/server/hdmi/HdmiCecMessageValidator.java +3 −1 Original line number Diff line number Diff line Loading @@ -145,7 +145,9 @@ public final class HdmiCecMessageValidator { addValidationInfo(Constants.MESSAGE_SET_OSD_STRING, maxLengthValidator, DEST_DIRECT); addValidationInfo(Constants.MESSAGE_SET_OSD_NAME, maxLengthValidator, DEST_DIRECT); // TODO: Handle messages for the Device Menu Control. // Messages for the Device Menu Control. addValidationInfo(Constants.MESSAGE_MENU_REQUEST, oneByteValidator, DEST_DIRECT); addValidationInfo(Constants.MESSAGE_MENU_STATUS, oneByteValidator, DEST_DIRECT); // Messages for the Remote Control Passthrough. // TODO: Parse the first parameter and determine if it can have the next parameter. Loading Loading
services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java +8 −2 Original line number Diff line number Diff line Loading @@ -263,7 +263,9 @@ abstract class HdmiCecLocalDevice { case Constants.MESSAGE_GIVE_DEVICE_POWER_STATUS: return handleGiveDevicePowerStatus(message); case Constants.MESSAGE_MENU_REQUEST: return handleGiveDeviceMenuStatus(message); return handleMenuRequest(message); case Constants.MESSAGE_MENU_STATUS: return handleMenuStatus(message); case Constants.MESSAGE_VENDOR_COMMAND: return handleVendorCommand(message); case Constants.MESSAGE_VENDOR_COMMAND_WITH_ID: Loading Loading @@ -503,13 +505,17 @@ abstract class HdmiCecLocalDevice { return true; } protected boolean handleGiveDeviceMenuStatus(HdmiCecMessage message) { protected boolean handleMenuRequest(HdmiCecMessage message) { // Always report menu active to receive Remote Control. mService.sendCecCommand(HdmiCecMessageBuilder.buildReportMenuStatus( mAddress, message.getSource(), Constants.MENU_STATE_ACTIVATED)); return true; } protected boolean handleMenuStatus(HdmiCecMessage message) { return false; } protected boolean handleVendorCommand(HdmiCecMessage message) { mService.invokeVendorCommandListeners(mDeviceType, message.getSource(), message.getParams(), false); Loading
services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java +6 −0 Original line number Diff line number Diff line Loading @@ -1645,6 +1645,12 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { invokeDeviceEventListener(newInfo, HdmiControlManager.DEVICE_EVENT_UPDATE_DEVICE); } @Override protected boolean handleMenuStatus(HdmiCecMessage message) { // Do nothing and just return true not to prevent from responding <Feature Abort>. return true; } @Override protected void dump(final IndentingPrintWriter pw) { super.dump(pw); Loading
services/core/java/com/android/server/hdmi/HdmiCecMessageValidator.java +3 −1 Original line number Diff line number Diff line Loading @@ -145,7 +145,9 @@ public final class HdmiCecMessageValidator { addValidationInfo(Constants.MESSAGE_SET_OSD_STRING, maxLengthValidator, DEST_DIRECT); addValidationInfo(Constants.MESSAGE_SET_OSD_NAME, maxLengthValidator, DEST_DIRECT); // TODO: Handle messages for the Device Menu Control. // Messages for the Device Menu Control. addValidationInfo(Constants.MESSAGE_MENU_REQUEST, oneByteValidator, DEST_DIRECT); addValidationInfo(Constants.MESSAGE_MENU_STATUS, oneByteValidator, DEST_DIRECT); // Messages for the Remote Control Passthrough. // TODO: Parse the first parameter and determine if it can have the next parameter. Loading