summaryrefslogtreecommitdiff
path: root/src/components/application_manager/src/hmi_capabilities_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/application_manager/src/hmi_capabilities_impl.cc')
-rw-r--r--src/components/application_manager/src/hmi_capabilities_impl.cc149
1 files changed, 67 insertions, 82 deletions
diff --git a/src/components/application_manager/src/hmi_capabilities_impl.cc b/src/components/application_manager/src/hmi_capabilities_impl.cc
index 6f95e43545..6a0fbf78e3 100644
--- a/src/components/application_manager/src/hmi_capabilities_impl.cc
+++ b/src/components/application_manager/src/hmi_capabilities_impl.cc
@@ -339,6 +339,8 @@ void InitCapabilities() {
image_field_name_enum.insert(
std::make_pair(std::string("locationImage"),
hmi_apis::Common_ImageFieldName::locationImage));
+ image_field_name_enum.insert(std::make_pair(
+ std::string("alertIcon"), hmi_apis::Common_ImageFieldName::alertIcon));
file_type_enum.insert(std::make_pair(std::string("GRAPHIC_BMP"),
hmi_apis::Common_FileType::GRAPHIC_BMP));
@@ -462,20 +464,9 @@ HMICapabilitiesImpl::HMICapabilitiesImpl(ApplicationManager& app_mngr)
}
HMICapabilitiesImpl::~HMICapabilitiesImpl() {
- delete vehicle_type_;
delete ui_supported_languages_;
delete tts_supported_languages_;
delete vr_supported_languages_;
- delete display_capabilities_;
- delete hmi_zone_capabilities_;
- delete soft_buttons_capabilities_;
- delete button_capabilities_;
- delete preset_bank_capabilities_;
- delete vr_capabilities_;
- delete speech_capabilities_;
- delete audio_pass_thru_capabilities_;
- delete pcm_stream_capabilities_;
- delete prerecorded_speech_;
delete navigation_capability_;
delete phone_capability_;
delete video_streaming_capability_;
@@ -483,13 +474,14 @@ HMICapabilitiesImpl::~HMICapabilitiesImpl() {
}
bool HMICapabilitiesImpl::VerifyImageType(const int32_t image_type) const {
- if (!display_capabilities_) {
+ auto capabilities = display_capabilities();
+ if (!capabilities) {
return false;
}
- if (display_capabilities_->keyExists(hmi_response::image_capabilities)) {
+ if (capabilities->keyExists(hmi_response::image_capabilities)) {
const smart_objects::SmartObject& image_caps =
- display_capabilities_->getElement(hmi_response::image_capabilities);
+ capabilities->getElement(hmi_response::image_capabilities);
for (uint32_t i = 0; i < image_caps.length(); ++i) {
if (image_caps.getElement(i).asInt() == image_type) {
return true;
@@ -603,11 +595,9 @@ void HMICapabilitiesImpl::set_display_capabilities(
if (app_mngr_.IsSOStructValid(
hmi_apis::StructIdentifiers::Common_DisplayCapabilities,
display_capabilities)) {
- if (display_capabilities_) {
- delete display_capabilities_;
- }
- display_capabilities_ =
- new smart_objects::SmartObject(display_capabilities);
+ smart_objects::SmartObjectSPtr new_value =
+ std::make_shared<smart_objects::SmartObject>(display_capabilities);
+ display_capabilities_.swap(new_value);
}
}
@@ -619,88 +609,73 @@ void HMICapabilitiesImpl::set_system_display_capabilities(
void HMICapabilitiesImpl::set_hmi_zone_capabilities(
const smart_objects::SmartObject& hmi_zone_capabilities) {
- if (hmi_zone_capabilities_) {
- delete hmi_zone_capabilities_;
- }
- hmi_zone_capabilities_ =
- new smart_objects::SmartObject(hmi_zone_capabilities);
+ smart_objects::SmartObjectSPtr new_value =
+ std::make_shared<smart_objects::SmartObject>(hmi_zone_capabilities);
+ hmi_zone_capabilities_.swap(new_value);
}
void HMICapabilitiesImpl::set_soft_button_capabilities(
const smart_objects::SmartObject& soft_button_capabilities) {
- if (soft_buttons_capabilities_) {
- delete soft_buttons_capabilities_;
- }
- soft_buttons_capabilities_ =
- new smart_objects::SmartObject(soft_button_capabilities);
+ smart_objects::SmartObjectSPtr new_value =
+ std::make_shared<smart_objects::SmartObject>(soft_button_capabilities);
+ soft_buttons_capabilities_.swap(new_value);
}
void HMICapabilitiesImpl::set_button_capabilities(
const smart_objects::SmartObject& button_capabilities) {
- if (button_capabilities_) {
- delete button_capabilities_;
- }
- button_capabilities_ = new smart_objects::SmartObject(button_capabilities);
+ smart_objects::SmartObjectSPtr new_value =
+ std::make_shared<smart_objects::SmartObject>(button_capabilities);
+ button_capabilities_.swap(new_value);
}
void HMICapabilitiesImpl::set_vr_capabilities(
const smart_objects::SmartObject& vr_capabilities) {
- if (vr_capabilities_) {
- delete vr_capabilities_;
- }
- vr_capabilities_ = new smart_objects::SmartObject(vr_capabilities);
+ smart_objects::SmartObjectSPtr new_value =
+ std::make_shared<smart_objects::SmartObject>(vr_capabilities);
+ vr_capabilities_.swap(new_value);
}
void HMICapabilitiesImpl::set_speech_capabilities(
const smart_objects::SmartObject& speech_capabilities) {
- if (speech_capabilities_) {
- delete speech_capabilities_;
- }
- speech_capabilities_ = new smart_objects::SmartObject(speech_capabilities);
+ smart_objects::SmartObjectSPtr new_value =
+ std::make_shared<smart_objects::SmartObject>(speech_capabilities);
+ speech_capabilities_.swap(new_value);
}
void HMICapabilitiesImpl::set_audio_pass_thru_capabilities(
const smart_objects::SmartObject& audio_pass_thru_capabilities) {
- if (audio_pass_thru_capabilities_) {
- delete audio_pass_thru_capabilities_;
- }
- audio_pass_thru_capabilities_ =
- new smart_objects::SmartObject(audio_pass_thru_capabilities);
+ smart_objects::SmartObjectSPtr new_value =
+ std::make_shared<smart_objects::SmartObject>(
+ audio_pass_thru_capabilities);
+ audio_pass_thru_capabilities_.swap(new_value);
}
void HMICapabilitiesImpl::set_pcm_stream_capabilities(
const smart_objects::SmartObject& pcm_stream_capabilities) {
- if (pcm_stream_capabilities_) {
- delete pcm_stream_capabilities_;
- }
- pcm_stream_capabilities_ =
- new smart_objects::SmartObject(pcm_stream_capabilities);
+ smart_objects::SmartObjectSPtr new_value =
+ std::make_shared<smart_objects::SmartObject>(pcm_stream_capabilities);
+ pcm_stream_capabilities_.swap(new_value);
}
void HMICapabilitiesImpl::set_preset_bank_capabilities(
const smart_objects::SmartObject& preset_bank_capabilities) {
- if (preset_bank_capabilities_) {
- delete preset_bank_capabilities_;
- }
- preset_bank_capabilities_ =
- new smart_objects::SmartObject(preset_bank_capabilities);
+ smart_objects::SmartObjectSPtr new_value =
+ std::make_shared<smart_objects::SmartObject>(preset_bank_capabilities);
+ preset_bank_capabilities_.swap(new_value);
}
void HMICapabilitiesImpl::set_vehicle_type(
const smart_objects::SmartObject& vehicle_type) {
- if (vehicle_type_) {
- delete vehicle_type_;
- }
- vehicle_type_ = new smart_objects::SmartObject(vehicle_type);
+ smart_objects::SmartObjectSPtr new_value =
+ std::make_shared<smart_objects::SmartObject>(vehicle_type);
+ vehicle_type_.swap(new_value);
}
void HMICapabilitiesImpl::set_prerecorded_speech(
const smart_objects::SmartObject& prerecorded_speech) {
- if (prerecorded_speech_) {
- delete prerecorded_speech_;
- prerecorded_speech_ = NULL;
- }
- prerecorded_speech_ = new smart_objects::SmartObject(prerecorded_speech);
+ smart_objects::SmartObjectSPtr new_value =
+ std::make_shared<smart_objects::SmartObject>(prerecorded_speech);
+ prerecorded_speech_.swap(new_value);
}
void HMICapabilitiesImpl::set_navigation_supported(const bool supported) {
@@ -761,8 +736,9 @@ void HMICapabilitiesImpl::set_seat_location_capability(
new smart_objects::SmartObject(seat_location_capability);
}
-void HMICapabilitiesImpl::Init(resumption::LastState* last_state) {
- hmi_language_handler_.Init(last_state);
+void HMICapabilitiesImpl::Init(
+ resumption::LastStateWrapperPtr last_state_wrapper) {
+ hmi_language_handler_.Init(last_state_wrapper);
if (false == load_capabilities_from_file()) {
LOG4CXX_ERROR(logger_, "file hmi_capabilities.json was not loaded");
} else {
@@ -772,6 +748,8 @@ void HMICapabilitiesImpl::Init(resumption::LastState* last_state) {
ui_language_, vr_language_, tts_language_);
}
+void HMICapabilitiesImpl::Init(resumption::LastState*) {}
+
bool HMICapabilitiesImpl::is_ui_cooperating() const {
return is_ui_cooperating_;
}
@@ -811,7 +789,7 @@ const smart_objects::SmartObject* HMICapabilitiesImpl::tts_supported_languages()
return tts_supported_languages_;
}
-const smart_objects::SmartObject* HMICapabilitiesImpl::display_capabilities()
+const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::display_capabilities()
const {
return display_capabilities_;
}
@@ -821,41 +799,42 @@ HMICapabilitiesImpl::system_display_capabilities() const {
return system_display_capabilities_;
}
-const smart_objects::SmartObject* HMICapabilitiesImpl::hmi_zone_capabilities()
- const {
+const smart_objects::SmartObjectSPtr
+HMICapabilitiesImpl::hmi_zone_capabilities() const {
return hmi_zone_capabilities_;
}
-const smart_objects::SmartObject*
+const smart_objects::SmartObjectSPtr
HMICapabilitiesImpl::soft_button_capabilities() const {
return soft_buttons_capabilities_;
}
-const smart_objects::SmartObject* HMICapabilitiesImpl::button_capabilities()
+const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::button_capabilities()
const {
return button_capabilities_;
}
-const smart_objects::SmartObject* HMICapabilitiesImpl::speech_capabilities()
+const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::speech_capabilities()
const {
return speech_capabilities_;
}
-const smart_objects::SmartObject* HMICapabilitiesImpl::vr_capabilities() const {
+const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::vr_capabilities()
+ const {
return vr_capabilities_;
}
-const smart_objects::SmartObject*
+const smart_objects::SmartObjectSPtr
HMICapabilitiesImpl::audio_pass_thru_capabilities() const {
return audio_pass_thru_capabilities_;
}
-const smart_objects::SmartObject* HMICapabilitiesImpl::pcm_stream_capabilities()
- const {
+const smart_objects::SmartObjectSPtr
+HMICapabilitiesImpl::pcm_stream_capabilities() const {
return pcm_stream_capabilities_;
}
-const smart_objects::SmartObject*
+const smart_objects::SmartObjectSPtr
HMICapabilitiesImpl::preset_bank_capabilities() const {
return preset_bank_capabilities_;
}
@@ -864,11 +843,11 @@ bool HMICapabilitiesImpl::attenuated_supported() const {
return attenuated_supported_;
}
-const smart_objects::SmartObject* HMICapabilitiesImpl::vehicle_type() const {
+const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::vehicle_type() const {
return vehicle_type_;
}
-const smart_objects::SmartObject* HMICapabilitiesImpl::prerecorded_speech()
+const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::prerecorded_speech()
const {
return prerecorded_speech_;
}
@@ -926,11 +905,17 @@ bool HMICapabilitiesImpl::load_capabilities_from_file() {
}
try {
- Json::Reader reader_;
+ Json::CharReaderBuilder reader_builder;
+ const std::unique_ptr<Json::CharReader> reader_(
+ reader_builder.newCharReader());
+ JSONCPP_STRING err;
Json::Value root_json;
+ const size_t json_len = json_string.length();
- bool result = reader_.parse(json_string, root_json, false);
+ const bool result = reader_->parse(
+ json_string.c_str(), json_string.c_str() + json_len, &root_json, &err);
if (!result) {
+ LOG4CXX_DEBUG(logger_, "Json parsing fails: " << err);
return false;
}
// UI