diff options
author | Jacob Keeler <jacob.keeler@livioradio.com> | 2018-08-17 16:55:40 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-17 16:55:40 -0700 |
commit | 2e20fe9a9cda25a54be7847b38e7b1998fe4ef72 (patch) | |
tree | d4b768725c9a3f43050262b5b5a6743282bcd49b | |
parent | 6314b805b8940d21c415a48aee0e3e52208e071a (diff) | |
parent | d1d41de4f1b9716504faa60b5d908c5c8b1c8454 (diff) | |
download | sdl_core-2e20fe9a9cda25a54be7847b38e7b1998fe4ef72.tar.gz |
Merge pull request #2264 from smartdevicelink/feature/rc_radio_parameter_update
Feature/Remote Control Radio Parameter Update
5 files changed, 75 insertions, 5 deletions
diff --git a/src/appMain/hmi_capabilities.json b/src/appMain/hmi_capabilities.json index dbbb42637c..a3f7bcd0a1 100755 --- a/src/appMain/hmi_capabilities.json +++ b/src/appMain/hmi_capabilities.json @@ -464,6 +464,8 @@ "rdsDataAvailable": true, "signalChangeThresholdAvailable": true, "signalStrengthAvailable": true, + "hdRadioEnableAvailable" : true, + "siriusxmRadioAvailable" : true, "sisDataAvailable":true, "stateAvailable": true } @@ -702,7 +704,6 @@ "rgbColorSpaceAvailable":true } ] - }, "hmiSettingsControlCapabilities": { "moduleName": "hmiSettings", diff --git a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/include/rc_rpc_plugin/rc_module_constants.h b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/include/rc_rpc_plugin/rc_module_constants.h index 22db12c68b..a38887572c 100644 --- a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/include/rc_rpc_plugin/rc_module_constants.h +++ b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/include/rc_rpc_plugin/rc_module_constants.h @@ -54,6 +54,9 @@ const char kSupportedLights[] = "supportedLights"; const char kName[] = "name"; const char kDensityAvailable[] = "densityAvailable"; const char kRGBColorSpaceAvailable[] = "rgbColorSpaceAvailable"; + +// RadioControlCapabilities +const char kSiriusxmRadioAvailable[] = "siriusxmRadioAvailable"; } // strings namespace result_codes { diff --git a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/set_interior_vehicle_data_request.cc b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/set_interior_vehicle_data_request.cc index f561cba6ff..f305f88872 100644 --- a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/set_interior_vehicle_data_request.cc +++ b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/set_interior_vehicle_data_request.cc @@ -98,6 +98,7 @@ const std::map<std::string, std::string> GetModuleDataToCapabilitiesMapping() { mapping["rdsData"] = "rdsDataAvailable"; mapping["availableHDs"] = "availableHDsAvailable"; mapping["hdChannel"] = "availableHDsAvailable"; + mapping["hdRadioEnable"] = "hdRadioEnableAvailable"; mapping["signalStrength"] = "signalStrengthAvailable"; mapping["signalChangeThreshold"] = "signalChangeThresholdAvailable"; mapping["radioEnable"] = "radioEnableAvailable"; @@ -218,6 +219,30 @@ bool CheckLightNameByCapabilities( return false; } +bool CheckRadioBandByCapabilities( + const smart_objects::SmartObject& capabilities_status, + const smart_objects::SmartObject& request_parameter) { + mobile_apis::RadioBand::eType radio_band = + static_cast<mobile_apis::RadioBand::eType>(request_parameter.asUInt()); + if (mobile_apis::RadioBand::XM == radio_band) { + if (!capabilities_status.keyExists(strings::kSiriusxmRadioAvailable)) { + LOG4CXX_DEBUG(logger_, + "Capability " + << strings::kSiriusxmRadioAvailable + << " is missed in RemoteControl capabilities"); + return false; + } + if (!capabilities_status[strings::kSiriusxmRadioAvailable].asBool()) { + LOG4CXX_DEBUG(logger_, + "Capability " + << strings::kSiriusxmRadioAvailable + << " is switched off in RemoteControl capabilities"); + return false; + } + } + return true; +} + bool CheckControlDataByCapabilities( const smart_objects::SmartObject& capabilities_status, const smart_objects::SmartObject& control_data) { @@ -261,6 +286,11 @@ bool CheckControlDataByCapabilities( << " is switched off in RemoteControl capabilities"); return false; } + if (message_params::kBand == request_parameter && + !CheckRadioBandByCapabilities(capabilities_status, + control_data[request_parameter])) { + return false; + } } return true; } diff --git a/src/components/interfaces/HMI_API.xml b/src/components/interfaces/HMI_API.xml index b341532cff..4dc5e7f331 100644 --- a/src/components/interfaces/HMI_API.xml +++ b/src/components/interfaces/HMI_API.xml @@ -1858,10 +1858,13 @@ </param> <param name="rdsData" type="Common.RdsData" mandatory="false"> </param> - <param name="availableHDs" type="Integer" minvalue="1" maxvalue="3" mandatory="false"> + <param name="hdRadioEnable" type="Boolean" mandatory="false"> + <description> True if the hd radio is on, false is the radio is off</description> + </param> + <param name="availableHDs" type="Integer" minvalue="1" maxvalue="7" mandatory="false"> <description>number of HD sub-channels if available</description> </param> - <param name="hdChannel" type="Integer" minvalue="1" maxvalue="3" mandatory="false"> + <param name="hdChannel" type="Integer" minvalue="1" maxvalue="7" mandatory="false"> <description>Current HD sub-channel if available</description> </param> <param name="signalStrength" type="Integer" minvalue="0" maxvalue="100" mandatory="false"> @@ -1944,6 +1947,18 @@ True: Available, False: Not Available, Not present: Not Available. </description> </param> + <param name="hdRadioEnableAvailable" type="Boolean" mandatory="false"> + <description> + Availability of the control of enable/disable HD radio. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="siriusxmRadioAvailable" type="Boolean" mandatory="false"> + <description> + Availability of sirius XM radio. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> </struct> <enum name="DefrostZone"> diff --git a/src/components/interfaces/MOBILE_API.xml b/src/components/interfaces/MOBILE_API.xml index 033c38bdf3..88a9c59203 100644 --- a/src/components/interfaces/MOBILE_API.xml +++ b/src/components/interfaces/MOBILE_API.xml @@ -3039,11 +3039,20 @@ </param> <param name="rdsData" type="RdsData" mandatory="false"> </param> - <param name="availableHDs" type="Integer" minvalue="1" maxvalue="3" mandatory="false"> + <param name="hdRadioEnable" type="Boolean" mandatory="false" since="5.0"> + <description> True if the hd radio is on, false is the radio is off</description> + </param> + <param name="availableHDs" type="Integer" minvalue="1" maxvalue="7" mandatory="false" since="5.0"> <description>number of HD sub-channels if available</description> + <history> + <param name="availableHDs" type="Integer" minvalue="1" maxvalue="3" mandatory="false" since="4.5" until="5.0"/> + </history> </param> - <param name="hdChannel" type="Integer" minvalue="1" maxvalue="3" mandatory="false"> + <param name="hdChannel" type="Integer" minvalue="1" maxvalue="7" mandatory="false" since="5.0"> <description>Current HD sub-channel if available</description> + <history> + <param name="hdChannel" type="Integer" minvalue="1" maxvalue="3" mandatory="false" since="4.5" until="5.0"/> + </history> </param> <param name="signalStrength" type="Integer" minvalue="0" maxvalue="100" mandatory="false"> </param> @@ -3164,6 +3173,18 @@ True: Available, False: Not Available, Not present: Not Available. </description> </param> + <param name="hdRadioEnableAvailable" type="Boolean" mandatory="false" since="5.0"> + <description> + Availability of the control of enable/disable HD radio. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="siriusxmRadioAvailable" type="Boolean" mandatory="false" since="5.0"> + <description> + Availability of sirius XM radio. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> </struct> <struct name="ClimateControlCapabilities" since="4.5"> |