From d28a7d6efa9faa75d52a6792917775da92d4f00b Mon Sep 17 00:00:00 2001 From: akutsan Date: Mon, 17 Mar 2014 10:38:50 +0200 Subject: [PATCH] APPLINK-5379 SDL: ImageFieldName --- src/appMain/hmi_capabilities.json | 105 +++++++++++++++++++++ src/components/application_manager/CMakeLists.txt | 4 +- .../application_manager/smart_object_keys.h | 1 + .../mobile/register_app_interface_request.cc | 16 ++++ .../commands/mobile/set_display_layout_request.cc | 2 - .../application_manager/src/hmi_capabilities.cc | 81 ++++++++++++++++ src/components/interfaces/HMI_API.xml | 2 + src/components/interfaces/MOBILE_API.xml | 4 +- 8 files changed, 209 insertions(+), 6 deletions(-) diff --git a/src/appMain/hmi_capabilities.json b/src/appMain/hmi_capabilities.json index f113917..224fdaa 100644 --- a/src/appMain/hmi_capabilities.json +++ b/src/appMain/hmi_capabilities.json @@ -16,11 +16,116 @@ "audioPassThruDisplayText1","audioPassThruDisplayText2","sliderHeader","sliderFooter","notificationText","menuName", "secondaryText","tertiaryText","timeToDestination","turnText" ], + "imageFields": + [ + { + "name":"softButtonImage", + "imageTypeSupported": + [ + ], + "imageResolution": + { + "resolutionWidth":35, + "resolutionHeight":35 + } + }, + { + "name":"choiceImage", + "imageTypeSupported": + [ + ], + "imageResolution": + { + "resolutionWidth":35, + "resolutionHeight":35 + } + }, + { + "name":"choiceSecondaryImage", + "imageTypeSupported": + [ + ], + "imageResolution": + { + "resolutionWidth":35, + "resolutionHeight":35 + } + }, + { + "name":"menuIcon", + "imageTypeSupported": + [ + ], + "imageResolution": + { + "resolutionWidth":35, + "resolutionHeight":35 + } + }, + { + "name":"cmdIcon", + "imageTypeSupported": + [ + ], + "imageResolution": + { + "resolutionWidth":35, + "resolutionHeight":35 + } + }, + { + "name":"appIcon", + "imageTypeSupported": + [ + ], + "imageResolution": + { + "resolutionWidth":35, + "resolutionHeight":35 + } + }, + { + "name":"graphic", + "imageTypeSupported": + [ + ], + "imageResolution": + { + "resolutionWidth":, + "resolutionHeight": + } + } + ], "mediaClockFormats": [ "CLOCK1","CLOCK2","CLOCK3","CLOCKTEXT1","CLOCKTEXT2","CLOCKTEXT3","CLOCKTEXT4" ], "graphicSupported":true, + "templatesAvailable": + [ + + "DEFAULT","MEDIA","NON-MEDIA","ONSCREEN_PRESETS","NAV_FULLSCREEN_MAP","NAV_KEYBOARD", + "GRAPHIC_WITH_TEXT","TEXT_WITH_GRAPHIC","TILES_ONLY","TEXTBUTTONS_ONLY", + "GRAPHIC_WITH_TILES","TILES_WITH_GRAPHIC","GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS", + "TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC","GRAPHIC_WITH_TEXTBUTTONS", + "TEXTBUTTONS_WITH_GRAPHIC","LARGE_GRAPHIC_WITH_SOFTBUTTONS", + "DOUBLE_GRAPHIC_WITH_SOFTBUTTONS","LARGE_GRAPHIC_ONLY" + ], + "screenParams": + { + "resolution": + { + "resolutionWidth":800, + "resolutionHeight":350 + }, + "touchEventAvailable": + { + "pressAvailable":true, + "multiTouchAvailable":false, + "doublePressAvailable":false + } + }, + "numCustomPresetsAvailable":8, "imageCapabilities": [ "DYNAMIC" diff --git a/src/components/application_manager/CMakeLists.txt b/src/components/application_manager/CMakeLists.txt index 307eb8a..171d288 100644 --- a/src/components/application_manager/CMakeLists.txt +++ b/src/components/application_manager/CMakeLists.txt @@ -297,9 +297,9 @@ set (HMI_COMMANDS_SOURCES ./src/commands/hmi/audio_stop_stream_request.cc ./src/commands/hmi/audio_stop_stream_response.cc ./src/commands/hmi/on_system_request_notification.cc +./src/commands/hmi/on_sdl_close_notification.cc ./src/commands/hmi/ui_set_display_layout_request.cc ./src/commands/hmi/ui_set_display_layout_response.cc -./src/commands/hmi/on_sdl_close_notification.cc ) set (HMI_COMMANDS_SOURCES_WEBHMI @@ -348,4 +348,4 @@ target_link_libraries ("ApplicationManager" log4cxx) if( BUILD_SHARED_LIBS ) install (FILES ${CMAKE_CURRENT_BINARY_DIR}/libApplicationManager.so DESTINATION lib) -endif() \ No newline at end of file +endif() diff --git a/src/components/application_manager/include/application_manager/smart_object_keys.h b/src/components/application_manager/include/application_manager/smart_object_keys.h index fc810c0..0f51e4f 100644 --- a/src/components/application_manager/include/application_manager/smart_object_keys.h +++ b/src/components/application_manager/include/application_manager/smart_object_keys.h @@ -294,6 +294,7 @@ const char display_type[] = "displayType"; const char text_fields[] = "textFields"; const char media_clock_formats[] = "mediaClockFormats"; const char graphic_supported[] = "graphicSupported"; +const char image_fields[] = "imageFields"; const char templates_available[] = "templatesAvailable"; const char screen_params[] = "screenParams"; const char num_custom_presets_available[] = "numCustomPresetsAvailable"; diff --git a/src/components/application_manager/src/commands/mobile/register_app_interface_request.cc b/src/components/application_manager/src/commands/mobile/register_app_interface_request.cc index ed11bc2..ae92ee4 100644 --- a/src/components/application_manager/src/commands/mobile/register_app_interface_request.cc +++ b/src/components/application_manager/src/commands/mobile/register_app_interface_request.cc @@ -238,6 +238,10 @@ void RegisterAppInterfaceRequest::SendRegisterAppInterfaceResponseToMobile( hmi_capabilities.display_capabilities()->getElement( hmi_response::text_fields); + display_caps[hmi_response::image_fields] = + hmi_capabilities.display_capabilities()->getElement( + hmi_response::image_fields); + display_caps[hmi_response::media_clock_formats] = hmi_capabilities.display_capabilities()->getElement( hmi_response::media_clock_formats); @@ -262,6 +266,18 @@ void RegisterAppInterfaceRequest::SendRegisterAppInterfaceResponseToMobile( display_caps[hmi_response::graphic_supported] = false; } + + display_caps[hmi_response::templates_available] = + hmi_capabilities.display_capabilities()->getElement( + hmi_response::templates_available); + + display_caps[hmi_response::screen_params] = + hmi_capabilities.display_capabilities()->getElement( + hmi_response::screen_params); + + display_caps[hmi_response::num_custom_presets_available] = + hmi_capabilities.display_capabilities()->getElement( + hmi_response::num_custom_presets_available); } if (hmi_capabilities.button_capabilities()) { diff --git a/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc b/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc index 5ee7013..18e5464 100644 --- a/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc +++ b/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc @@ -50,7 +50,6 @@ SetDisplayLayoutRequest::~SetDisplayLayoutRequest() { void SetDisplayLayoutRequest::Run() { LOG4CXX_INFO(logger_, "SetDisplayLayoutRequest::Run"); - ApplicationConstSharedPtr app = ApplicationManagerImpl::instance() ->application(connection_key()); @@ -61,7 +60,6 @@ void SetDisplayLayoutRequest::Run() { } (*message_)[strings::msg_params][strings::app_id] = app->app_id(); - SendHMIRequest(hmi_apis::FunctionID::UI_SetDisplayLayout, &((*message_)[strings::msg_params]), true); diff --git a/src/components/application_manager/src/hmi_capabilities.cc b/src/components/application_manager/src/hmi_capabilities.cc index c6c2ffb..5652ba5 100644 --- a/src/components/application_manager/src/hmi_capabilities.cc +++ b/src/components/application_manager/src/hmi_capabilities.cc @@ -171,7 +171,34 @@ std::map hmi_zone_enum {"BACK", hmi_apis::Common_HmiZoneCapabilities::BACK}, }; +const std::map +image_field_name_enum = +{ + {"softButtonImage", hmi_apis::Common_ImageFieldName::softButtonImage}, + {"choiceImage", hmi_apis::Common_ImageFieldName::choiceImage}, + {"choiceSecondaryImage", hmi_apis::Common_ImageFieldName::choiceSecondaryImage}, + {"vrHelpItem", hmi_apis::Common_ImageFieldName::vrHelpItem}, + {"turnIcon", hmi_apis::Common_ImageFieldName::turnIcon}, + {"menuIcon", hmi_apis::Common_ImageFieldName::menuIcon}, + {"cmdIcon", hmi_apis::Common_ImageFieldName::cmdIcon}, + {"graphic", hmi_apis::Common_ImageFieldName::graphic}, + {"showConstantTBTIcon", hmi_apis::Common_ImageFieldName::showConstantTBTIcon}, + {"showConstantTBTNextTurnIcon", + hmi_apis::Common_ImageFieldName::showConstantTBTNextTurnIcon}, + {"nextTurnIcon", hmi_apis::Common_ImageFieldName::showConstantTBTNextTurnIcon} +}; +const std::map file_type_enum = +{ + {"GRAPHIC_BMP", hmi_apis::Common_FileType::GRAPHIC_BMP}, + {"GRAPHIC_JPEG", hmi_apis::Common_FileType::GRAPHIC_JPEG}, + {"GRAPHIC_PNG", hmi_apis::Common_FileType::GRAPHIC_PNG}, + {"AUDIO_WAVE", hmi_apis::Common_FileType::AUDIO_WAVE}, + {"AUDIO_MP3", hmi_apis::Common_FileType::AUDIO_MP3}, + {"AUDIO_AAC", hmi_apis::Common_FileType::AUDIO_AAC}, + {"BINARY", hmi_apis::Common_FileType::BINARY}, + {"JSON", hmi_apis::Common_FileType::JSON} +}; HMICapabilities::HMICapabilities(ApplicationManagerImpl* const app_mngr) : is_vr_cooperating_(false), @@ -545,6 +572,31 @@ bool HMICapabilities::load_capabilities_from_file() { text_fields_enum_name.find(text_fields[i].asString())->first; } + display_capabilities_so["imageFields"] = + smart_objects::SmartObject(smart_objects::SmartType_Array); + Json::Value image_fields = display_capabilities.get("imageFields", ""); + for (int32_t i = 0; i < image_fields.size(); ++i) { + smart_objects::SmartObject image_field = + smart_objects::SmartObject(smart_objects::SmartType_Map); + image_field["name"] = image_field_name_enum.find( + image_fields[i].get("name","").asString())->second; + image_field["imageTypeSupported"] = + smart_objects::SmartObject(smart_objects::SmartType_Array); + Json::Value image_type_suported = + image_fields[i].get("imageTypeSupported", ""); + for (int32_t j = 0; j < image_type_suported.size(); ++j) { + image_field["imageTypeSupported"][j] = (file_type_enum.find( + image_type_suported[j].asString()))->second; + } + image_field["imageResolution"]["resolutionWidth"] = + ((image_fields[i].get("imageResolution", "")). + get("resolutionWidth", "")).asInt(); + image_field["imageResolution"]["resolutionHeight"] = + ((image_fields[i].get("imageResolution", "")). + get("resolutionHeight", "")).asInt(); + display_capabilities_so["imageFields"][i] = image_field; + } + display_capabilities_so["mediaClockFormats"] = smart_objects::SmartObject(smart_objects::SmartType_Array); Json::Value media_clock_format = @@ -556,6 +608,35 @@ bool HMICapabilities::load_capabilities_from_file() { display_capabilities_so["graphicSupported"] = display_capabilities.get("graphicSupported", "").asBool(); + display_capabilities_so["templatesAvailable"] = + smart_objects::SmartObject(smart_objects::SmartType_Array); + Json::Value teplates_available = + display_capabilities.get("templatesAvailable", ""); + for(int32_t i = 0; i < teplates_available.size(); ++i) { + display_capabilities_so["templatesAvailable"][i] = + teplates_available[i].asString(); + } + Json::Value screen_params_resolution = + (display_capabilities.get("screenParams", "")).get("resolution", ""); + Json::Value screen_params_touch_event_available = + (display_capabilities.get("screenParams", "")) + .get("touchEventAvailable", ""); + display_capabilities_so["screenParams"]["resolution"]["resolutionWidth"] = + screen_params_resolution.get("resolutionWidth", "").asInt(); + display_capabilities_so["screenParams"]["resolution"]["resolutionHeight"] = + screen_params_resolution.get("resolutionHeight", "").asInt(); + display_capabilities_so["screenParams"] + ["touchEventAvailable"]["pressAvailable"] = + screen_params_touch_event_available.get("pressAvailable", "").asBool(); + display_capabilities_so["screenParams"] + ["touchEventAvailable"]["multiTouchAvailable"] = + screen_params_touch_event_available.get("multiTouchAvailable", "").asBool(); + display_capabilities_so["screenParams"] + ["touchEventAvailable"]["doublePressAvailable"] = + screen_params_touch_event_available.get("doublePressAvailable", "").asBool(); + display_capabilities_so["numCustomPresetsAvailable"] = + display_capabilities.get("numCustomPresetsAvailable", "").asInt(); + Json::Value image_capabilities = display_capabilities.get("imageCapabilities", ""); display_capabilities_so["imageCapabilities"] = diff --git a/src/components/interfaces/HMI_API.xml b/src/components/interfaces/HMI_API.xml index a2dc68c..e1e6e7c 100644 --- a/src/components/interfaces/HMI_API.xml +++ b/src/components/interfaces/HMI_API.xml @@ -2418,6 +2418,7 @@ + @@ -2429,6 +2430,7 @@ ID of application related to this RPC. + See DisplayCapabilities diff --git a/src/components/interfaces/MOBILE_API.xml b/src/components/interfaces/MOBILE_API.xml index 78debb9..0f1fa92 100644 --- a/src/components/interfaces/MOBILE_API.xml +++ b/src/components/interfaces/MOBILE_API.xml @@ -1740,7 +1740,7 @@ The image resolution height. - + @@ -1753,7 +1753,7 @@ The image resolution of this field. - + The x coordinate of the touch. -- 2.7.4