diff options
author | JackLivio <jack@livio.io> | 2019-06-07 09:52:22 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-07 09:52:22 -0400 |
commit | 7a7c31b1ac64d6acd1796f5024472905b32ecf73 (patch) | |
tree | 08c60a0746845fd4504f46d1e467bed89dae519d | |
parent | 2026979753640570e5a6bfe239106a90f7c6ffdc (diff) | |
parent | cc0bbed20a52e08462b17954da6e58507aa7e4b7 (diff) | |
download | sdl_core-7a7c31b1ac64d6acd1796f5024472905b32ecf73.tar.gz |
Merge pull request #2927 from smartdevicelink/feature/add_media_service_data_image
Add Parameter Media Service Data mediaImage
8 files changed, 48 insertions, 1 deletions
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 65ec4f15c3..fc124f7558 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 @@ -322,6 +322,7 @@ extern const char* service_active; extern const char* app_service_id; extern const char* service_data; extern const char* media_service_data; +extern const char* media_image; extern const char* weather_service_data; extern const char* location; extern const char* current_forecast; diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/hmi/as_get_app_service_data_request_from_hmi.h b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/hmi/as_get_app_service_data_request_from_hmi.h index 531d1816e9..d9eb7528e4 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/hmi/as_get_app_service_data_request_from_hmi.h +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/hmi/as_get_app_service_data_request_from_hmi.h @@ -92,6 +92,8 @@ class ASGetAppServiceDataRequestFromHMI application_manager::ApplicationSharedPtr app); void GetNavigationImagePaths(smart_objects::SmartObject& data, application_manager::ApplicationSharedPtr app); + void GetMediaImagePaths(smart_objects::SmartObject& data, + application_manager::ApplicationSharedPtr app); bool ValidateResponse(smart_objects::SmartObject& message_params); DISALLOW_COPY_AND_ASSIGN(ASGetAppServiceDataRequestFromHMI); diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/hmi/on_as_app_service_data_notification.h b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/hmi/on_as_app_service_data_notification.h index cff7c8e5b8..2dcd5ec251 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/hmi/on_as_app_service_data_notification.h +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/hmi/on_as_app_service_data_notification.h @@ -70,6 +70,8 @@ class OnASAppServiceDataNotification virtual void Run(); private: + void GetMediaImagePaths(smart_objects::SmartObject& data, + application_manager::ApplicationSharedPtr app); void GetWeatherImagePaths(smart_objects::SmartObject& data, application_manager::ApplicationSharedPtr app); void GetNavigationImagePaths(smart_objects::SmartObject& data, diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_request_from_hmi.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_request_from_hmi.cc index 2da8834b96..e03c0ad15a 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_request_from_hmi.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_request_from_hmi.cc @@ -161,6 +161,14 @@ void ASGetAppServiceDataRequestFromHMI::GetNavigationImagePaths( } } +void ASGetAppServiceDataRequestFromHMI::GetMediaImagePaths( + smart_objects::SmartObject& data, ApplicationSharedPtr app) { + if (data.keyExists(strings::media_image)) { + MessageHelper::VerifyImage( + data[strings::media_image], app, application_manager_); + } +} + bool ASGetAppServiceDataRequestFromHMI::ValidateResponse( smart_objects::SmartObject& message_params) { if (!message_params.keyExists(strings::service_data)) { @@ -215,6 +223,11 @@ bool ASGetAppServiceDataRequestFromHMI::ValidateResponse( GetNavigationImagePaths(service_data[strings::navigation_service_data], app); } + + if (service_type_value == mobile_apis::AppServiceType::MEDIA && + service_data.keyExists(strings::media_service_data)) { + GetMediaImagePaths(service_data[strings::media_service_data], app); + } } return true; } diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/on_as_app_service_data_notification.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/on_as_app_service_data_notification.cc index e90de23837..db1716ecb8 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/on_as_app_service_data_notification.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/on_as_app_service_data_notification.cc @@ -55,6 +55,14 @@ OnASAppServiceDataNotification::OnASAppServiceDataNotification( OnASAppServiceDataNotification::~OnASAppServiceDataNotification() {} +void OnASAppServiceDataNotification::GetMediaImagePaths( + smart_objects::SmartObject& data, ApplicationSharedPtr app) { + if (data.keyExists(strings::media_image)) { + MessageHelper::VerifyImage( + data[strings::media_image], app, application_manager_); + } +} + void OnASAppServiceDataNotification::GetWeatherImagePaths( smart_objects::SmartObject& data, ApplicationSharedPtr app) { if (data[strings::location].keyExists(strings::location_image)) { @@ -186,6 +194,11 @@ bool OnASAppServiceDataNotification::ValidateParams( GetNavigationImagePaths(service_data[strings::navigation_service_data], app); } + + if (service_type_value == mobile_apis::AppServiceType::MEDIA && + service_data.keyExists(strings::media_service_data)) { + GetMediaImagePaths(service_data[strings::media_service_data], app); + } } return true; } diff --git a/src/components/application_manager/src/smart_object_keys.cc b/src/components/application_manager/src/smart_object_keys.cc index 48e293a782..872103929f 100644 --- a/src/components/application_manager/src/smart_object_keys.cc +++ b/src/components/application_manager/src/smart_object_keys.cc @@ -289,6 +289,7 @@ const char* service_active = "serviceActive"; const char* app_service_id = "appServiceId"; const char* service_data = "serviceData"; const char* media_service_data = "mediaServiceData"; +const char* media_image = "mediaImage"; const char* weather_service_data = "weatherServiceData"; const char* location = "location"; const char* current_forecast = "currentForecast"; diff --git a/src/components/interfaces/HMI_API.xml b/src/components/interfaces/HMI_API.xml index 55a3a99e9d..a69d2f05c8 100644 --- a/src/components/interfaces/HMI_API.xml +++ b/src/components/interfaces/HMI_API.xml @@ -3484,6 +3484,14 @@ Audiobook: The total number of sections in the playback queue (e.g. the number of chapters in the book) </description> </param> + + <param name="mediaImage" type="Common.Image" mandatory="false"> + <description> + Music: The album art of the current track + Podcast: The podcast or chapter artwork of the current podcast episode + Audiobook: The book or chapter artwork of the current audiobook + </description> + </param> </struct> <struct name="WeatherServiceManifest"> diff --git a/src/components/interfaces/MOBILE_API.xml b/src/components/interfaces/MOBILE_API.xml index 9bc321fde8..a2cdb88b4d 100644 --- a/src/components/interfaces/MOBILE_API.xml +++ b/src/components/interfaces/MOBILE_API.xml @@ -1,7 +1,7 @@ <?xml version="1.0" standalone="no"?> <?xml-stylesheet type="text/xml" href="protocol2html.xsl"?> -<interface name="SmartDeviceLink RAPI" version="5.1.0" minVersion="1.0" date="2019-03-19"> +<interface name="SmartDeviceLink RAPI" version="5.2.0" minVersion="1.0" date="2019-03-19"> <enum name="Result" internal_scope="base" since="1.0"> <element name="SUCCESS"> <description>The request succeeded</description> @@ -3830,6 +3830,13 @@ Audiobook: The total number of sections in the playback queue (e.g. the number of chapters in the book) </description> </param> + <param name="mediaImage" type="Image" mandatory="false" since="5.2"> + <description> + Music: The album art of the current track + Podcast: The podcast or chapter artwork of the current podcast episode + Audiobook: The book or chapter artwork of the current audiobook + </description> + </param> </struct> <struct name="WeatherServiceManifest" since="5.1"> |