diff options
Diffstat (limited to 'SDL_Core/src/components/application_manager')
601 files changed, 57820 insertions, 0 deletions
diff --git a/SDL_Core/src/components/application_manager/CMakeLists.txt b/SDL_Core/src/components/application_manager/CMakeLists.txt new file mode 100644 index 000000000..916d72749 --- /dev/null +++ b/SDL_Core/src/components/application_manager/CMakeLists.txt @@ -0,0 +1,347 @@ +include_directories ( + ./include/ + ../utils/include/ + ../formatters/include/ + ../protocol_handler/include/ + ../smart_objects/include/ + ../hmi_message_handler/include + ../media_manager/include/ + ../connection_handler/include/ + ../config_profile/include/ + ../request_watchdog/include/ + ../transport_manager/include/ + ../policies/include/ + ../../thirdPartyLibs/jsoncpp/include/ + ../../thirdPartyLibs/encryption/include/ + ../../thirdPartyLibs/MessageBroker/include + ${CMAKE_BINARY_DIR}/src/components/ +) + +set (SOURCES +./src/application_manager_impl.cc +./src/message.cc +./src/application_impl.cc +./src/mobile_command_factory.cc +./src/message_helper.cc +./src/hmi_command_factory.cc +./src/hmi_capabilities.cc +./src/application_data_impl.cc +./src/request_controller.cc +./src/resume_ctrl.cpp +./src/mobile_message_handler.cc +) + +set (POLICIES_MANAGER +./src/policies_manager/policies_manager.cc +) + +set (EVENT_ENGINE +./src/event_engine/event.cc +./src/event_engine/event_dispatcher.cc +./src/event_engine/event_observer.cc +) + +set (MOBILE_COMMANDS_SOURCES +./src/commands/command_impl.cc +./src/commands/command_request_impl.cc +./src/commands/command_response_impl.cc +./src/commands/command_notification_impl.cc +./src/commands/pending.cc +./src/commands/mobile/add_command_request.cc +./src/commands/mobile/add_command_response.cc +./src/commands/mobile/add_sub_menu_request.cc +./src/commands/mobile/add_sub_menu_response.cc +./src/commands/mobile/alert_request.cc +./src/commands/mobile/alert_response.cc +./src/commands/mobile/alert_maneuver_request.cc +./src/commands/mobile/alert_maneuver_response.cc +./src/commands/mobile/change_registration_request.cc +./src/commands/mobile/change_registration_response.cc +./src/commands/mobile/create_interaction_choice_set_request.cc +./src/commands/mobile/create_interaction_choice_set_response.cc +./src/commands/mobile/delete_command_request.cc +./src/commands/mobile/delete_command_response.cc +./src/commands/mobile/delete_file_request.cc +./src/commands/mobile/delete_file_response.cc +./src/commands/mobile/delete_interaction_choice_set_request.cc +./src/commands/mobile/delete_interaction_choice_set_response.cc +./src/commands/mobile/delete_sub_menu_request.cc +./src/commands/mobile/delete_sub_menu_response.cc +./src/commands/mobile/dial_number_request.cc +./src/commands/mobile/encoded_sync_pdata_request.cc +./src/commands/mobile/encoded_sync_pdata_response.cc +./src/commands/mobile/end_audio_pass_thru_request.cc +./src/commands/mobile/end_audio_pass_thru_response.cc +./src/commands/mobile/generic_response.cc +./src/commands/mobile/get_dtcs_request.cc +./src/commands/mobile/get_dtcs_response.cc +./src/commands/mobile/diagnostic_message_request.cc +./src/commands/mobile/diagnostic_message_response.cc +./src/commands/mobile/get_vehicle_data_request.cc +./src/commands/mobile/get_vehicle_data_response.cc +./src/commands/mobile/list_files_request.cc +./src/commands/mobile/list_files_response.cc +./src/commands/mobile/on_app_interface_unregistered_notification.cc +./src/commands/mobile/on_audio_pass_thru_notification.cc +./src/commands/mobile/on_button_event_notification.cc +./src/commands/mobile/on_button_press_notification.cc +./src/commands/mobile/on_driver_distraction_notification.cc +./src/commands/mobile/on_encoded_sync_pdata_notification.cc +./src/commands/mobile/on_hmi_status_notification.cc +./src/commands/mobile/on_language_change_notification.cc +./src/commands/mobile/on_command_notification.cc +./src/commands/mobile/on_permissions_change_notification.cc +./src/commands/mobile/on_tbt_client_state_notification.cc +./src/commands/mobile/on_vehicle_data_notification.cc +./src/commands/mobile/perform_audio_pass_thru_request.cc +./src/commands/mobile/perform_audio_pass_thru_response.cc +./src/commands/mobile/perform_interaction_request.cc +./src/commands/mobile/perform_interaction_response.cc +./src/commands/mobile/put_file_request.cc +./src/commands/mobile/put_file_response.cc +./src/commands/mobile/read_did_request.cc +./src/commands/mobile/read_did_response.cc +./src/commands/mobile/register_app_interface_request.cc +./src/commands/mobile/register_app_interface_response.cc +./src/commands/mobile/reset_global_properties_request.cc +./src/commands/mobile/reset_global_properties_response.cc +./src/commands/mobile/scrollable_message_request.cc +./src/commands/mobile/scrollable_message_response.cc +./src/commands/mobile/set_display_layout_request.cc +./src/commands/mobile/set_display_layout_response.cc +./src/commands/mobile/set_global_properties_request.cc +./src/commands/mobile/set_global_properties_response.cc +./src/commands/mobile/set_icon_request.cc +./src/commands/mobile/set_icon_response.cc +./src/commands/mobile/set_media_clock_timer_request.cc +./src/commands/mobile/set_media_clock_timer_response.cc +./src/commands/mobile/show_constant_tbt_request.cc +./src/commands/mobile/show_constant_tbt_response.cc +./src/commands/mobile/show_request.cc +./src/commands/mobile/show_response.cc +./src/commands/mobile/slider_request.cc +./src/commands/mobile/slider_response.cc +./src/commands/mobile/speak_request.cc +./src/commands/mobile/speak_response.cc +./src/commands/mobile/subscribe_button_request.cc +./src/commands/mobile/subscribe_button_response.cc +./src/commands/mobile/subscribe_vehicle_data_request.cc +./src/commands/mobile/subscribe_vehicle_data_response.cc +./src/commands/mobile/unregister_app_interface_request.cc +./src/commands/mobile/unregister_app_interface_response.cc +./src/commands/mobile/unsubscribe_button_request.cc +./src/commands/mobile/unsubscribe_button_response.cc +./src/commands/mobile/unsubscribe_vehicle_data_request.cc +./src/commands/mobile/unsubscribe_vehicle_data_response.cc +./src/commands/mobile/update_turn_list_request.cc +./src/commands/mobile/update_turn_list_response.cc +./src/commands/mobile/sync_pdata_request.cc +./src/commands/mobile/sync_pdata_response.cc +./src/commands/mobile/system_request.cc +./src/commands/mobile/system_response.cc +./src/commands/mobile/on_sync_pdata_notification.cc +./src/commands/mobile/on_keyboard_input_notification.cc +./src/commands/mobile/on_touch_event_notification.cc +./src/commands/mobile/on_system_request_notification.cc +./src/commands/mobile/on_hash_change_notification.cc +) + +set (HMI_COMMANDS_SOURCES +./src/commands/hmi/request_to_hmi.cc +./src/commands/hmi/response_from_hmi.cc +./src/commands/hmi/notification_to_hmi.cc +./src/commands/hmi/notification_from_hmi.cc +./src/commands/hmi/allow_all_apps_request.cc +./src/commands/hmi/allow_all_apps_response.cc +./src/commands/hmi/allow_app_request.cc +./src/commands/hmi/allow_app_response.cc +./src/commands/hmi/activate_app_request.cc +./src/commands/hmi/activate_app_response.cc +./src/commands/hmi/mixing_audio_supported_request.cc +./src/commands/hmi/mixing_audio_supported_response.cc +./src/commands/hmi/update_app_list_request.cc +./src/commands/hmi/update_app_list_response.cc +./src/commands/hmi/on_update_device_list.cc +./src/commands/hmi/update_device_list_request.cc +./src/commands/hmi/update_device_list_response.cc +./src/commands/hmi/on_exit_all_applications_notification.cc +./src/commands/hmi/on_exit_application_notification.cc +./src/commands/hmi/on_start_device_discovery.cc +./src/commands/hmi/close_popup_request.cc +./src/commands/hmi/close_popup_response.cc +./src/commands/hmi/on_app_activated_notification.cc +./src/commands/hmi/button_get_capabilities_request.cc +./src/commands/hmi/button_get_capabilities_response.cc +./src/commands/hmi/vr_is_ready_request.cc +./src/commands/hmi/vr_is_ready_response.cc +./src/commands/hmi/vr_add_command_request.cc +./src/commands/hmi/vr_add_command_response.cc +./src/commands/hmi/vr_delete_command_request.cc +./src/commands/hmi/vr_delete_command_response.cc +./src/commands/hmi/vr_change_registration_request.cc +./src/commands/hmi/vr_change_registration_response.cc +./src/commands/hmi/vr_get_supported_languages_request.cc +./src/commands/hmi/vr_get_supported_languages_response.cc +./src/commands/hmi/vr_get_language_request.cc +./src/commands/hmi/vr_get_language_response.cc +./src/commands/hmi/vr_get_capabilities_request.cc +./src/commands/hmi/vr_get_capabilities_response.cc +./src/commands/hmi/tts_is_ready_request.cc +./src/commands/hmi/tts_is_ready_response.cc +./src/commands/hmi/tts_change_registration_request.cc +./src/commands/hmi/tts_change_registration_response.cc +./src/commands/hmi/tts_get_language_request.cc +./src/commands/hmi/tts_get_language_response.cc +./src/commands/hmi/tts_get_supported_languages_request.cc +./src/commands/hmi/tts_get_supported_languages_response.cc +./src/commands/hmi/tts_stop_speaking_request.cc +./src/commands/hmi/tts_stop_speaking_response.cc +./src/commands/hmi/tts_speak_request.cc +./src/commands/hmi/tts_speak_response.cc +./src/commands/hmi/tts_set_global_properties_request.cc +./src/commands/hmi/tts_set_global_properties_response.cc +./src/commands/hmi/tts_get_capabilities_request.cc +./src/commands/hmi/tts_get_capabilities_response.cc +./src/commands/hmi/tts_perform_interaction_request.cc +./src/commands/hmi/tts_perform_interaction_response.cc +./src/commands/hmi/ui_add_command_request.cc +./src/commands/hmi/ui_add_command_response.cc +./src/commands/hmi/ui_delete_command_request.cc +./src/commands/hmi/ui_delete_command_response.cc +./src/commands/hmi/ui_add_submenu_request.cc +./src/commands/hmi/ui_add_submenu_response.cc +./src/commands/hmi/ui_delete_submenu_request.cc +./src/commands/hmi/ui_delete_submenu_response.cc +./src/commands/hmi/ui_get_supported_languages_request.cc +./src/commands/hmi/ui_get_supported_languages_response.cc +./src/commands/hmi/ui_get_language_request.cc +./src/commands/hmi/ui_get_language_response.cc +./src/commands/hmi/ui_get_capabilities_request.cc +./src/commands/hmi/ui_get_capabilities_response.cc +./src/commands/hmi/ui_change_registration_request.cc +./src/commands/hmi/ui_change_registration_response.cc +./src/commands/hmi/ui_show_request.cc +./src/commands/hmi/ui_show_response.cc +./src/commands/hmi/ui_alert_request.cc +./src/commands/hmi/ui_alert_response.cc +./src/commands/hmi/ui_slider_request.cc +./src/commands/hmi/ui_scrollable_message_request.cc +./src/commands/hmi/ui_scrollable_message_response.cc +./src/commands/hmi/ui_set_global_properties_request.cc +./src/commands/hmi/ui_set_global_properties_response.cc +./src/commands/hmi/ui_slider_response.cc +./src/commands/hmi/ui_is_ready_request.cc +./src/commands/hmi/ui_is_ready_response.cc +./src/commands/hmi/ui_perform_audio_pass_thru_request.cc +./src/commands/hmi/ui_perform_audio_pass_thru_response.cc +./src/commands/hmi/ui_end_audio_pass_thru_request.cc +./src/commands/hmi/ui_end_audio_pass_thru_response.cc +./src/commands/hmi/ui_perform_interaction_request.cc +./src/commands/hmi/ui_perform_interaction_response.cc +./src/commands/hmi/ui_set_icon_request.cc +./src/commands/hmi/ui_set_icon_response.cc +./src/commands/hmi/ui_set_media_clock_timer_request.cc +./src/commands/hmi/ui_set_media_clock_timer_response.cc +./src/commands/hmi/ui_show_request.cc +./src/commands/hmi/ui_show_response.cc +./src/commands/hmi/vi_is_ready_request.cc +./src/commands/hmi/vi_is_ready_response.cc +./src/commands/hmi/vi_read_did_request.cc +./src/commands/hmi/vi_read_did_response.cc +./src/commands/hmi/vi_get_dtcs_request.cc +./src/commands/hmi/vi_get_dtcs_response.cc +./src/commands/hmi/vi_diagnostic_message_request.cc +./src/commands/hmi/vi_diagnostic_message_response.cc +./src/commands/hmi/vi_get_vehicle_type_request.cc +./src/commands/hmi/vi_get_vehicle_type_response.cc +./src/commands/hmi/navi_is_ready_request.cc +./src/commands/hmi/navi_is_ready_response.cc +./src/commands/hmi/navi_alert_maneuver_request.cc +./src/commands/hmi/navi_alert_maneuver_response.cc +./src/commands/hmi/navi_update_turn_list_request.cc +./src/commands/hmi/navi_update_turn_list_response.cc +./src/commands/hmi/navi_show_constant_tbt_request.cc +./src/commands/hmi/navi_show_constant_tbt_response.cc +./src/commands/hmi/on_ready_notification.cc +./src/commands/hmi/on_system_context_notification.cc +./src/commands/hmi/on_device_chosen_notification.cc +./src/commands/hmi/on_update_device_list.cc +./src/commands/hmi/on_app_registered_notification.cc +./src/commands/hmi/on_app_unregistered_notification.cc +./src/commands/hmi/on_driver_distraction_notification.cc +./src/commands/hmi/on_play_tone_notification.cc +./src/commands/hmi/on_tts_started_notification.cc +./src/commands/hmi/on_tts_stopped_notification.cc +./src/commands/hmi/on_vr_started_notification.cc +./src/commands/hmi/on_vr_stopped_notification.cc +./src/commands/hmi/on_vr_command_notification.cc +./src/commands/hmi/on_ui_command_notification.cc +./src/commands/hmi/on_navi_tbt_client_state_notification.cc +./src/commands/hmi/on_app_deactivated_notification.cc +./src/commands/hmi/on_tts_language_change_notification.cc +./src/commands/hmi/on_vr_language_change_notification.cc +./src/commands/hmi/on_ui_language_change_notification.cc +./src/commands/hmi/on_button_event_notification.cc +./src/commands/hmi/on_button_press_notification.cc +./src/commands/hmi/on_show_notification.cc +./src/commands/hmi/on_find_applications.cc +./src/commands/hmi/on_ui_keyboard_input_notification.cc +./src/commands/hmi/on_ui_touch_event_notification.cc +./src/commands/hmi/on_ui_reset_timeout_notification.cc +./src/commands/hmi/navi_start_stream_request.cc +./src/commands/hmi/navi_start_stream_response.cc +./src/commands/hmi/navi_stop_stream_request.cc +./src/commands/hmi/navi_stop_stream_response.cc +./src/commands/hmi/audio_start_stream_request.cc +./src/commands/hmi/audio_start_stream_response.cc +./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/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 +./src/commands/hmi/vi_get_vehicle_data_request.cc +./src/commands/hmi/vi_get_vehicle_data_response.cc +./src/commands/hmi/vi_subscribe_vehicle_data_request.cc +./src/commands/hmi/vi_subscribe_vehicle_data_response.cc +./src/commands/hmi/vi_unsubscribe_vehicle_data_request.cc +./src/commands/hmi/vi_unsubscribe_vehicle_data_response.cc +./src/commands/hmi/on_vi_vehicle_data_notification.cc +) + +set (HMI_COMMANDS_SOURCES_QTHMI +./src/commands/hmi/on_vi_gps_data_notification.cc +./src/commands/hmi/on_vi_speed_notification.cc +./src/commands/hmi/on_vi_rpm_notification.cc +./src/commands/hmi/on_vi_fuel_level_notification.cc +./src/commands/hmi/on_vi_fuel_level_state_notification.cc +./src/commands/hmi/on_vi_instant_fuel_consumption_notification.cc +./src/commands/hmi/on_vi_external_temperature_notification.cc +./src/commands/hmi/on_vi_vin_notification.cc +./src/commands/hmi/on_vi_prndl_notification.cc +./src/commands/hmi/on_vi_tire_pressure_notification.cc +./src/commands/hmi/on_vi_odometer_notification.cc +./src/commands/hmi/on_vi_belt_status_notification.cc +./src/commands/hmi/on_vi_body_information_notification.cc +./src/commands/hmi/on_vi_device_status_notification.cc +./src/commands/hmi/on_vi_driver_braking_notification.cc +./src/commands/hmi/on_vi_wiper_status_notification.cc +./src/commands/hmi/on_vi_head_lamp_status_notification.cc +./src/commands/hmi/on_vi_engine_torque_notification.cc +./src/commands/hmi/on_vi_acc_pedal_position_notification.cc +./src/commands/hmi/on_vi_steering_wheel_angle_notification.cc +./src/commands/hmi/on_vi_my_key_notification.cc +) + +if (${WEB_HMI}) + set (HMI_COMMANDS_SOURCES ${HMI_COMMANDS_SOURCES} ${HMI_COMMANDS_SOURCES_WEBHMI}) +endif (${WEB_HMI}) +if (${QT_HMI}) + set (HMI_COMMANDS_SOURCES ${HMI_COMMANDS_SOURCES} ${HMI_COMMANDS_SOURCES_QTHMI}) +endif (${QT_HMI}) + +add_library("ApplicationManager" ${SOURCES} ${MOBILE_COMMANDS_SOURCES} ${HMI_COMMANDS_SOURCES} ${POLICIES_MANAGER} ${EVENT_ENGINE}) +target_link_libraries ("ApplicationManager" log4cxx) diff --git a/SDL_Core/src/components/application_manager/include/application_manager/application.h b/SDL_Core/src/components/application_manager/include/application_manager/application.h new file mode 100644 index 000000000..06f69348b --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/application.h @@ -0,0 +1,438 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_H_ + +#include <string> +#include <map> +#include "utils/shared_ptr.h" +#include "interfaces/MOBILE_API.h" +#include "connection_handler/device.h" +#include <set> + +namespace NsSmartDeviceLink { +namespace NsSmartObjects { +class SmartObject; +} +} + +namespace application_manager { + +namespace mobile_api = mobile_apis; + +namespace smart_objects = NsSmartDeviceLink::NsSmartObjects; +typedef int32_t ErrorCode; + +enum APIVersion { + kUnknownAPI = -1, + kAPIV1 = 1, + kAPIV2 = 2 +}; + +struct Version { + APIVersion min_supported_api_version; + APIVersion max_supported_api_version; + + Version() + : min_supported_api_version(APIVersion::kUnknownAPI), + max_supported_api_version(APIVersion::kUnknownAPI) { + } +}; + +struct AppFile { + // need to use in std::map; + AppFile() { + } + AppFile(const std::string& name, bool persistent, bool download_complete, + mobile_apis::FileType::eType type) + : is_persistent(persistent), + is_download_complete(download_complete), + file_name(name), + file_type(type){ + } + std::string file_name; + bool is_persistent; + bool is_download_complete; + mobile_apis::FileType::eType file_type; +}; +typedef std::map<std::string, AppFile> AppFilesMap; +class InitialApplicationData { + public: + virtual ~InitialApplicationData() { + } + + virtual const smart_objects::SmartObject* app_types() const = 0; + virtual const smart_objects::SmartObject* vr_synonyms() const = 0; + virtual const smart_objects::SmartObject* mobile_app_id() const = 0; + virtual const smart_objects::SmartObject* tts_name() const = 0; + virtual const smart_objects::SmartObject* ngn_media_screen_name() const = 0; + virtual const mobile_api::Language::eType& language() const = 0; + virtual const mobile_api::Language::eType& ui_language() const = 0; + virtual void set_app_types(const smart_objects::SmartObject& app_types) = 0; + virtual void set_vr_synonyms( + const smart_objects::SmartObject& vr_synonyms) = 0; + virtual void set_mobile_app_id( + const smart_objects::SmartObject& mobile_app_id) = 0; + virtual void set_tts_name(const smart_objects::SmartObject& tts_name) = 0; + virtual void set_ngn_media_screen_name( + const smart_objects::SmartObject& ngn_name) = 0; + virtual void set_language(const mobile_api::Language::eType& language) = 0; + virtual void set_ui_language( + const mobile_api::Language::eType& ui_language) = 0; +}; + +/* + * @brief Typedef for supported commands in application menu + */ +typedef std::map<uint32_t, smart_objects::SmartObject*> CommandsMap; + +/* + * @brief Typedef for supported sub menu in application menu + */ +typedef std::map<uint32_t, smart_objects::SmartObject*> SubMenuMap; + +/* + * @brief Typedef for interaction choice set + */ +typedef std::map<uint32_t, smart_objects::SmartObject*> ChoiceSetMap; + +/* + * @brief Typedef for perform interaction choice set + */ +typedef std::map<uint32_t, smart_objects::SmartObject*> PerformChoiceSetMap; + +class DynamicApplicationData { + public: + virtual ~DynamicApplicationData() { + } + virtual const smart_objects::SmartObject* help_prompt() const = 0; + virtual const smart_objects::SmartObject* timeout_prompt() const = 0; + virtual const smart_objects::SmartObject* vr_help_title() const = 0; + virtual const smart_objects::SmartObject* vr_help() const = 0; + virtual const mobile_api::TBTState::eType& tbt_state() const = 0; + virtual const smart_objects::SmartObject* show_command() const = 0; + virtual const smart_objects::SmartObject* tbt_show_command() const = 0; + virtual const std::set<mobile_apis::ButtonName::eType>& SubscribedButtons() const = 0; + virtual const std::set<uint32_t>& SubscribesIVI() const = 0; + virtual const smart_objects::SmartObject* keyboard_props() const = 0; + + virtual void set_help_prompt( + const smart_objects::SmartObject& help_prompt) = 0; + virtual void set_timeout_prompt( + const smart_objects::SmartObject& timeout_prompt) = 0; + virtual void set_vr_help_title( + const smart_objects::SmartObject& vr_help_title) = 0; + virtual void reset_vr_help_title() = 0; + virtual void set_vr_help(const smart_objects::SmartObject& vr_help) = 0; + virtual void reset_vr_help() = 0; + virtual void set_tbt_state(const mobile_api::TBTState::eType& tbt_state) = 0; + virtual void set_show_command( + const smart_objects::SmartObject& show_command) = 0; + virtual void set_tbt_show_command( + const smart_objects::SmartObject& tbt_show) = 0; + virtual void set_keyboard_props( + const smart_objects::SmartObject& keyboard_props) = 0; + + /* + * @brief Adds a command to the in application menu + */ + virtual void AddCommand(uint32_t cmd_id, + const smart_objects::SmartObject& command) = 0; + + /* + * @brief Deletes all commands from the application + * menu with the specified command id + */ + virtual void RemoveCommand(uint32_t cmd_id) = 0; + + /* + * @brief Finds command with the specified command id + */ + virtual smart_objects::SmartObject* FindCommand(uint32_t cmd_id) = 0; + + /* + * @brief Adds a menu to the application + */ + virtual void AddSubMenu(uint32_t menu_id, + const smart_objects::SmartObject& menu) = 0; + + /* + * @brief Deletes menu from the application menu + */ + virtual void RemoveSubMenu(uint32_t menu_id) = 0; + + /* + * @brief Finds menu with the specified id + */ + virtual smart_objects::SmartObject* FindSubMenu( + uint32_t menu_id) const = 0; + + /* + * @brief Returns true if sub menu with such name already exist + */ + virtual bool IsSubMenuNameAlreadyExist(const std::string& name) = 0; + + /* + * @brief Adds a interaction choice set to the application + * + * @param choice_set_id Unique ID used for this interaction choice set + * @param choice_set SmartObject that represent choice set + */ + virtual void AddChoiceSet(uint32_t choice_set_id, + const smart_objects::SmartObject& choice_set) = 0; + + /* + * @brief Deletes choice set from the application + * + * @param choice_set_id Unique ID of the interaction choice set + */ + virtual void RemoveChoiceSet(uint32_t choice_set_id) = 0; + + /* + * @brief Finds choice set with the specified choice_set_id id + * + * @param choice_set_id Unique ID of the interaction choice set + */ + virtual smart_objects::SmartObject* FindChoiceSet( + uint32_t choice_set_id) = 0; + + /* + * @brief Adds perform interaction choice set to the application + * + * @param choice_set_id Unique ID used for this interaction choice set + * @param choice_set SmartObject that represents choice set + */ + virtual void AddPerformInteractionChoiceSet( + uint32_t choice_set_id, + const smart_objects::SmartObject& choice_set) = 0; + + /* + * @brief Deletes entirely perform interaction choice set map + * + */ + virtual void DeletePerformInteractionChoiceSetMap() = 0; + + /* + * @brief Retrieves entirely ChoiceSet - VR commands map + * + * @return ChoiceSet map that is currently in use + */ + virtual const PerformChoiceSetMap& + performinteraction_choice_set_map() const = 0; + + /* + * @brief Retrieves choice set that is currently in use by perform + * interaction + * + * @param choice_set_id Unique ID of the interaction choice set + * + * @return SmartObject that represents choice set + */ + virtual smart_objects::SmartObject* FindPerformInteractionChoiceSet( + uint32_t choice_set_id) const = 0; + + /* + * @brief Retrieve application commands + */ + virtual const CommandsMap& commands_map() const = 0; + + /* + * @brief Retrieve application sub menus + */ + virtual const SubMenuMap& sub_menu_map() const = 0; + + /* + * @brief Retrieve application choice set map + */ + virtual const ChoiceSetMap& choice_set_map() const = 0; + + /* + * @brief Sets perform interaction state + * + * @param active Current state of the perform interaction + */ + virtual void set_perform_interaction_active(uint32_t active) = 0; + + /* + * @brief Retrieves perform interaction state + * + * @return TRUE if perform interaction active, otherwise FALSE + */ + virtual uint32_t is_perform_interaction_active() const = 0; + + /* + * @brief Sets the choice that was selected in + * response to PerformInteraction + * + * @param choice Choice that was selected + */ + virtual void set_perform_interaction_ui_corrid(uint32_t choice) = 0; + + /* + * @brief Retrieve the choice that was selected in + * response to PerformInteraction + * + * @return Choice that was selected in response to PerformInteraction + */ + virtual uint32_t perform_interaction_ui_corrid() const = 0; + + /* + * @brief Sets the mode for perform interaction: UI/VR/BOTH + * + * @param mode Mode that was selected (MENU; VR; BOTH) + */ + virtual void set_perform_interaction_mode(int32_t mode) = 0; + + /* + * @brief Retrieve the mode that was PerformInteraction sent in + * + * @return mode of PerformInteraction + */ + virtual int32_t perform_interaction_mode() const = 0; + + /* + * @brief Sets reset global properties state + * + * @param active Current state of the reset global properties + */ + virtual void set_reset_global_properties_active(bool active) = 0; + + /* + * @brief Retrieves reset global properties state + * + * @return TRUE if perform interaction active, otherwise FALSE + */ + virtual bool is_reset_global_properties_active() const = 0; +}; + +class Application : public virtual InitialApplicationData, + public virtual DynamicApplicationData { + public: + virtual ~Application() { + } + + /** + * @brief Returns message belonging to the application + * that is currently executed (i.e. on HMI). + * @return smart_objects::SmartObject * Active message + */ + virtual const smart_objects::SmartObject* active_message() const = 0; + + /** + * @brief Change Hash value and return it + * @return next Hash value + */ + virtual uint32_t nextHash() = 0; + + /** + * @brief returns cuurent hash value + * @return current Hash value + */ + virtual uint32_t curHash() const = 0; + + /** + * @brief Change Hash for current application + * and send notification to mobile + * @return updated_hash + */ + virtual uint32_t UpdateHash() = 0; + + virtual void CloseActiveMessage() = 0; + virtual bool IsFullscreen() const = 0; + virtual bool MakeFullscreen() = 0; + virtual bool IsAudible() const = 0; + virtual void MakeNotAudible() = 0; + virtual bool allowed_support_navigation() const = 0; + virtual void set_allowed_support_navigation(bool allow) = 0; + virtual bool hmi_supports_navi_streaming() const = 0; + virtual void set_hmi_supports_navi_streaming(const bool& supports) = 0; + virtual bool app_allowed() const = 0; + virtual bool has_been_activated() const = 0; + + virtual const Version& version() const = 0; + virtual uint32_t app_id() const = 0; + virtual const std::string& name() const = 0; + virtual bool is_media_application() const = 0; + virtual const mobile_api::HMILevel::eType& hmi_level() const = 0; + virtual const uint32_t put_file_in_none_count() const = 0; + virtual const uint32_t delete_file_in_none_count() const = 0; + virtual const uint32_t list_files_in_none_count() const = 0; + virtual const mobile_api::SystemContext::eType& system_context() const = 0; + virtual const mobile_api::AudioStreamingState::eType& + audio_streaming_state() const = 0; + virtual const std::string& app_icon_path() const = 0; + virtual connection_handler::DeviceHandle device() const = 0; + virtual void set_tts_speak_state(bool state_tts_speak) = 0; + virtual void set_version(const Version& version) = 0; + virtual void set_name(const std::string& name) = 0; + virtual void set_is_media_application(bool is_media) = 0; + virtual void set_hmi_level(const mobile_api::HMILevel::eType& hmi_level) = 0; + virtual void increment_put_file_in_none_count() = 0; + virtual void increment_delete_file_in_none_count() = 0; + virtual void increment_list_files_in_none_count() = 0; + virtual void set_system_context( + const mobile_api::SystemContext::eType& system_context) = 0; + virtual void set_audio_streaming_state( + const mobile_api::AudioStreamingState::eType& state) = 0; + virtual bool set_app_icon_path(const std::string& file_name) = 0; + virtual void set_app_allowed(const bool& allowed) = 0; + virtual void set_device(connection_handler::DeviceHandle device) = 0; + + virtual bool AddFile(AppFile& file) = 0; + virtual const AppFilesMap& getAppFiles() const = 0; + + /** + * @brief Updates fields of existing file + * @param file_name File name, that need to update + * @param is_persistent Bollean describes is file persistent? + * @param is_download_complete Bollean describes is file downloaded fully on need to finish downloading? + * @return TRUE if file exist and updated sucsesfuly, othervise return false + */ + virtual bool UpdateFile(AppFile& file) = 0; + virtual bool DeleteFile(const std::string& file_name) = 0; + + virtual bool SubscribeToButton(mobile_apis::ButtonName::eType btn_name) = 0; + virtual bool IsSubscribedToButton(mobile_apis::ButtonName::eType btn_name) = 0; + virtual bool UnsubscribeFromButton(mobile_apis::ButtonName::eType btn_name) = 0; + + virtual bool SubscribeToIVI(uint32_t vehicle_info_type_) = 0; + virtual bool IsSubscribedToIVI(uint32_t vehicle_info_type_) = 0; + virtual bool UnsubscribeFromIVI(uint32_t vehicle_info_type_) = 0; +}; + +typedef utils::SharedPtr<Application> ApplicationSharedPtr; +typedef utils::SharedPtr<const Application> ApplicationConstSharedPtr; + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/application_data_impl.h b/SDL_Core/src/components/application_manager/include/application_manager/application_data_impl.h new file mode 100644 index 000000000..ac16a65da --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/application_data_impl.h @@ -0,0 +1,323 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_DATA_IMPL_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_DATA_IMPL_H_ + +#include <string> +#include "smart_objects/smart_object.h" +#include "application_manager/application.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace mobile_api = mobile_apis; + +class InitialApplicationDataImpl : public virtual Application { + public: + InitialApplicationDataImpl(); + ~InitialApplicationDataImpl(); + + const smart_objects::SmartObject* app_types() const; + const smart_objects::SmartObject* vr_synonyms() const; + const smart_objects::SmartObject* mobile_app_id() const; + const smart_objects::SmartObject* tts_name() const; + const smart_objects::SmartObject* ngn_media_screen_name() const; + const mobile_api::Language::eType& language() const; + const mobile_api::Language::eType& ui_language() const; + void set_app_types(const smart_objects::SmartObject& app_types); + void set_vr_synonyms(const smart_objects::SmartObject& vr_synonyms); + void set_mobile_app_id(const smart_objects::SmartObject& mobile_app_id); + void set_tts_name(const smart_objects::SmartObject& tts_name); + void set_ngn_media_screen_name(const smart_objects::SmartObject& ngn_name); + void set_language(const mobile_api::Language::eType& language); + void set_ui_language(const mobile_api::Language::eType& ui_language); + + protected: + smart_objects::SmartObject* app_types_; + smart_objects::SmartObject* vr_synonyms_; + smart_objects::SmartObject* mobile_app_id_; + smart_objects::SmartObject* tts_name_; + smart_objects::SmartObject* ngn_media_screen_name_; + mobile_api::Language::eType language_; + mobile_api::Language::eType ui_language_; + private: + DISALLOW_COPY_AND_ASSIGN(InitialApplicationDataImpl); +}; + +class DynamicApplicationDataImpl : public virtual Application { + public: + DynamicApplicationDataImpl(); + ~DynamicApplicationDataImpl(); + const smart_objects::SmartObject* help_prompt() const; + const smart_objects::SmartObject* timeout_prompt() const; + const smart_objects::SmartObject* vr_help_title() const; + const smart_objects::SmartObject* vr_help() const; + const mobile_api::TBTState::eType& tbt_state() const; + const smart_objects::SmartObject* show_command() const; + const smart_objects::SmartObject* tbt_show_command() const; + const smart_objects::SmartObject* keyboard_props() const; + + void set_help_prompt(const smart_objects::SmartObject& help_prompt); + void set_timeout_prompt(const smart_objects::SmartObject& timeout_prompt); + void set_vr_help_title(const smart_objects::SmartObject& vr_help_title); + void reset_vr_help_title(); + void set_vr_help(const smart_objects::SmartObject& vr_help); + void reset_vr_help(); + void set_tbt_state(const mobile_api::TBTState::eType& tbt_state); + void set_show_command(const smart_objects::SmartObject& show_command); + void set_tbt_show_command(const smart_objects::SmartObject& tbt_show); + void set_keyboard_props(const smart_objects::SmartObject& keyboard_props); + + /* + * @brief Adds a command to the in application menu + */ + void AddCommand(uint32_t cmd_id, + const smart_objects::SmartObject& command); + + /* + * @brief Deletes all commands from the application menu with the specified command id + */ + void RemoveCommand(uint32_t cmd_id); + + /* + * @brief Finds command with the specified command id + */ + smart_objects::SmartObject* FindCommand(uint32_t cmd_id); + + /* + * @brief Adds a menu to the application + */ + void AddSubMenu(uint32_t menu_id, const smart_objects::SmartObject& menu); + + /* + * @brief Deletes menu from the application menu + */ + void RemoveSubMenu(uint32_t menu_id); + + /* + * @brief Finds menu with the specified id + */ + smart_objects::SmartObject* FindSubMenu(uint32_t menu_id) const; + + /* + * @brief Returns true if sub menu with such name already exist + */ + bool IsSubMenuNameAlreadyExist(const std::string& name); + + /* + * @brief Adds a interaction choice set to the application + * + * @param choice_set_id Unique ID used for this interaction choice set + * @param choice_set SmartObject that represent choice set + */ + void AddChoiceSet(uint32_t choice_set_id, + const smart_objects::SmartObject& choice_set); + + /* + * @brief Deletes choice set from the application + * + * @param choice_set_id Unique ID of the interaction choice set + */ + void RemoveChoiceSet(uint32_t choice_set_id); + + /* + * @brief Finds choice set with the specified choice_set_id id + * + * @param choice_set_id Unique ID of the interaction choice set + */ + smart_objects::SmartObject* FindChoiceSet(uint32_t choice_set_id); + + /* + * @brief Adds perform interaction choice set to the application + * + * @param choice_set_id Unique ID used for this interaction choice set + * @param choice_set SmartObject that represents choice set + */ + void AddPerformInteractionChoiceSet( + uint32_t choice_set_id, const smart_objects::SmartObject& choice_set); + + /* + * @brief Deletes entirely perform interaction choice set map + * + */ + void DeletePerformInteractionChoiceSetMap(); + + /* + * @brief Retrieves entirely ChoiceSet - VR commands map + * + * @return ChoiceSet map that is currently in use + */ + inline const PerformChoiceSetMap& performinteraction_choice_set_map() const; + + /* + * @brief Retrieves choice set that is currently in use by perform + * interaction + * + * @param choice_set_id Unique ID of the interaction choice set + * + * @return SmartObject that represents choice set + */ + smart_objects::SmartObject* FindPerformInteractionChoiceSet( + uint32_t choice_set_id) const; + + /* + * @brief Retrieve application commands + */ + inline const CommandsMap& commands_map() const; + + /* + * @brief Retrieve application sub menus + */ + inline const SubMenuMap& sub_menu_map() const; + + /* + * @brief Retrieve application choice set map + */ + inline const ChoiceSetMap& choice_set_map() const; + + /* + * @brief Sets perform interaction state + * + * @param active Current state of the perform interaction + */ + void set_perform_interaction_active(uint32_t active); + + /* + * @brief Retrieves perform interaction state + * + * @return TRUE if perform interaction active, otherwise FALSE + */ + inline uint32_t is_perform_interaction_active() const; + + /* + * @brief Sets the choice that was selected in + * response to PerformInteraction + * + * @param choice Choice that was selected + */ + void set_perform_interaction_ui_corrid(uint32_t corr_id); + + /* + * @brief Retrieve the choice that was selected in + * response to PerformInteraction + * + * @return Choice that was selected in response to PerformInteraction + */ + inline uint32_t perform_interaction_ui_corrid() const; + /* + * @brief Sets the mode for perform interaction: UI/VR/BOTH + * + * @param mode Mode that was selected (MENU; VR; BOTH) + */ + void set_perform_interaction_mode(int32_t mode); + + /* + * @brief Retrieve the mode that was PerformInteraction sent in + * + * @return mode of PerformInteraction + */ + inline int32_t perform_interaction_mode() const; + + /* + * @brief Sets reset global properties state + * + * @param active Current state of the reset global properties + */ + void set_reset_global_properties_active(bool active); + + /* + * @brief Retrieves reset global properties state + * + * @return TRUE if perform interaction active, otherwise FALSE + */ + inline bool is_reset_global_properties_active() const; + + protected: + smart_objects::SmartObject* help_prompt_; + smart_objects::SmartObject* timeout_prompt_; + smart_objects::SmartObject* vr_help_title_; + smart_objects::SmartObject* vr_help_; + mobile_api::TBTState::eType tbt_state_; + smart_objects::SmartObject* show_command_; + smart_objects::SmartObject* tbt_show_command_; + smart_objects::SmartObject* keyboard_props_; + + + CommandsMap commands_; + SubMenuMap sub_menu_; + ChoiceSetMap choice_set_map_; + PerformChoiceSetMap performinteraction_choice_set_map_; + int32_t perform_interaction_mode_; + uint32_t is_perform_interaction_active_; + uint32_t perform_interaction_ui_corrid_; + bool is_reset_global_properties_active_; + private: + DISALLOW_COPY_AND_ASSIGN(DynamicApplicationDataImpl); +}; + +const CommandsMap& DynamicApplicationDataImpl::commands_map() const { + return commands_; +} + +const SubMenuMap& DynamicApplicationDataImpl::sub_menu_map() const { + return sub_menu_; +} + +const ChoiceSetMap& DynamicApplicationDataImpl::choice_set_map() const { + return choice_set_map_; +} + +uint32_t DynamicApplicationDataImpl::is_perform_interaction_active() const { + return is_perform_interaction_active_; +} + +uint32_t DynamicApplicationDataImpl::perform_interaction_ui_corrid() const { + return perform_interaction_ui_corrid_; +} + +bool DynamicApplicationDataImpl::is_reset_global_properties_active() const { + return is_reset_global_properties_active_; +} + +const PerformChoiceSetMap& +DynamicApplicationDataImpl::performinteraction_choice_set_map() const { + return performinteraction_choice_set_map_; +} + +inline int32_t DynamicApplicationDataImpl::perform_interaction_mode() const { + return perform_interaction_mode_; +} + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_DATA_IMPL_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/application_impl.h b/SDL_Core/src/components/application_manager/include/application_manager/application_impl.h new file mode 100644 index 000000000..8216af88c --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/application_impl.h @@ -0,0 +1,176 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_IMPL_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_IMPL_H_ + +#include <map> +#include <set> +#include <vector> +#include "application_manager/application_data_impl.h" +#include "connection_handler/device.h" + +namespace application_manager { + +namespace mobile_api = mobile_apis; + +class ApplicationImpl : public virtual InitialApplicationDataImpl, + public virtual DynamicApplicationDataImpl { + public: + explicit ApplicationImpl(uint32_t application_id); + ~ApplicationImpl(); + + /** + * @brief Returns message belonging to the application + * that is currently executed (i.e. on HMI). + * @return smart_objects::SmartObject * Active message + */ + const smart_objects::SmartObject* active_message() const; + void CloseActiveMessage(); + bool IsFullscreen() const; + bool MakeFullscreen(); + bool IsAudible() const; + void MakeNotAudible(); + bool allowed_support_navigation() const; + void set_allowed_support_navigation(bool allow); + bool hmi_supports_navi_streaming() const ; + void set_hmi_supports_navi_streaming(const bool& supports); + inline bool app_allowed() const; + bool has_been_activated() const; + + const Version& version() const; + inline uint32_t app_id() const; + const std::string& name() const; + bool is_media_application() const; + const mobile_api::HMILevel::eType& hmi_level() const; + const uint32_t put_file_in_none_count() const; + const uint32_t delete_file_in_none_count() const; + const uint32_t list_files_in_none_count() const; + const mobile_api::SystemContext::eType& system_context() const; + inline const mobile_api::AudioStreamingState::eType& + audio_streaming_state() const; + const std::string& app_icon_path() const; + connection_handler::DeviceHandle device() const; + void set_tts_speak_state(bool state_tts_speak); + void set_version(const Version& ver); + void set_name(const std::string& name); + void set_is_media_application(bool is_media); + void set_hmi_level(const mobile_api::HMILevel::eType& hmi_level); + void increment_put_file_in_none_count(); + void increment_delete_file_in_none_count(); + void increment_list_files_in_none_count(); + void set_system_context( + const mobile_api::SystemContext::eType& system_context); + void set_audio_streaming_state( + const mobile_api::AudioStreamingState::eType& state); + bool set_app_icon_path(const std::string& path); + void set_app_allowed(const bool& allowed); + void set_device(connection_handler::DeviceHandle device); + + bool AddFile(AppFile& file); + bool UpdateFile(AppFile& file); + + bool DeleteFile(const std::string& file_name); + virtual const AppFilesMap& getAppFiles() const; + + bool SubscribeToButton(mobile_apis::ButtonName::eType btn_name); + bool IsSubscribedToButton(mobile_apis::ButtonName::eType btn_name); + bool UnsubscribeFromButton(mobile_apis::ButtonName::eType btn_name); + + bool SubscribeToIVI(uint32_t vehicle_info_type_); + bool IsSubscribedToIVI(uint32_t vehicle_info_type_); + bool UnsubscribeFromIVI(uint32_t vehicle_info_type_); + + virtual const std::set<mobile_apis::ButtonName::eType>& SubscribedButtons() const; + virtual const std::set<uint32_t>& SubscribesIVI() const; + + virtual uint32_t nextHash(); + virtual uint32_t curHash() const; + + /** + * @brief Change Hash for current application + * and send notification to mobile + * @return updated_hash + */ + virtual uint32_t UpdateHash(); + + + protected: + void CleanupFiles(); + + private: + + uint32_t hash_val_; + + smart_objects::SmartObject* active_message_; + + Version version_; + uint32_t app_id_; + std::string app_name_; + bool is_media_; + bool allowed_support_navigation_; + bool is_app_allowed_; + bool has_been_activated_; + bool tts_speak_state_; + bool hmi_supports_navi_streaming_; + + mobile_api::HMILevel::eType hmi_level_; + uint32_t put_file_in_none_count_; + uint32_t delete_file_in_none_count_; + uint32_t list_files_in_none_count_; + mobile_api::SystemContext::eType system_context_; + mobile_api::AudioStreamingState::eType audio_streaming_state_; + std::string app_icon_path_; + connection_handler::DeviceHandle device_; + + AppFilesMap app_files_; + std::set<mobile_apis::ButtonName::eType> subscribed_buttons_; + std::set<uint32_t> subscribed_vehicle_info_; + DISALLOW_COPY_AND_ASSIGN(ApplicationImpl); +}; + +uint32_t ApplicationImpl::app_id() const { + return app_id_; +} + +const mobile_api::AudioStreamingState::eType& +ApplicationImpl::audio_streaming_state() const { + return audio_streaming_state_; +} + +bool ApplicationImpl::app_allowed() const { + return is_app_allowed_; +} + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_IMPL_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/application_manager.h b/SDL_Core/src/components/application_manager/include/application_manager/application_manager.h new file mode 100644 index 000000000..1f1a6739e --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/application_manager.h @@ -0,0 +1,79 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_MANAGER_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_MANAGER_H_ + +#include <set> +#include "hmi_message_handler/hmi_message_handler.h" +#include "connection_handler/connection_handler.h" +#include "protocol_handler/protocol_handler.h" + +namespace policies { + class PolicyManager; +} // namespace policies + +namespace application_manager { + +class Application; +class HMIMatrix; +class PoliciesManager; + +class ApplicationManager { + public: + virtual ~ApplicationManager() { + } + + /** + * @brief Stop work. + * + * @return TRUE on success otherwise FALSE. + **/ + virtual bool Stop() = 0; + + virtual void set_hmi_message_handler( + hmi_message_handler::HMIMessageHandler* handler) = 0; + virtual void set_protocol_handler( + protocol_handler::ProtocolHandler* handler) = 0; + virtual void set_connection_handler( + connection_handler::ConnectionHandler* handler) = 0; + virtual void set_policy_manager( + policies::PolicyManager* policy_manager) = 0; + + protected: + virtual void CreateHMIMatrix(HMIMatrix* matrix) = 0; + virtual void CreatePoliciesManager(PoliciesManager* managaer) = 0; +}; + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_MANAGER_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/application_manager_impl.h b/SDL_Core/src/components/application_manager/include/application_manager/application_manager_impl.h new file mode 100644 index 000000000..fdb6894c9 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/application_manager_impl.h @@ -0,0 +1,610 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_H_ + +#include <cstdint> +#include <vector> +#include <map> +#include <set> +#include "application_manager/hmi_command_factory.h" +#include "application_manager/application_manager.h" +#include "application_manager/hmi_capabilities.h" +#include "application_manager/message.h" +#include "application_manager/policies_manager/policies_manager.h" +#include "application_manager/request_controller.h" +#include "application_manager/resume_ctrl.h" +#include "protocol_handler/protocol_observer.h" +#include "hmi_message_handler/hmi_message_observer.h" + +#include "media_manager/media_manager_impl.h" + +#include "connection_handler/connection_handler_observer.h" +#include "connection_handler/device.h" + +#include "formatters/CSmartFactory.hpp" + +#include "interfaces/HMI_API.h" +#include "interfaces/HMI_API_schema.h" +#include "interfaces/MOBILE_API_schema.h" + +#include "interfaces/v4_protocol_v1_2_no_extra.h" +#include "interfaces/v4_protocol_v1_2_no_extra_schema.h" + +#include "protocol_handler/service_type.h" + +#include "utils/macro.h" +#include "utils/logger.h" +#include "utils/shared_ptr.h" +#include "utils/message_queue.h" +#include "utils/prioritized_queue.h" +#include "utils/threads/thread.h" +#include "utils/threads/message_loop_thread.h" +#include "utils/lock.h" +#include "utils/singleton.h" + +namespace NsSmartDeviceLink { +namespace NsSmartObjects { +class SmartObject; +} +} + +namespace smart_objects = NsSmartDeviceLink::NsSmartObjects; + +namespace threads { +class Thread; +} +class CommandNotificationImpl; + +namespace application_manager { +namespace mobile_api = mobile_apis; + +class ApplicationManagerImpl; + +namespace impl { +using namespace threads; + +/* + * These dummy classes are here to locally impose strong typing on different + * kinds of messages + * Currently there is no type difference between incoming and outgoing messages + * And due to ApplicationManagerImpl works as message router it has to distinguish + * messages passed from it's different connection points + * TODO(ik): replace these with globally defined message types + * when we have them. + */ +struct MessageFromMobile: public utils::SharedPtr<Message> { + explicit MessageFromMobile(const utils::SharedPtr<Message>& message): + utils::SharedPtr<Message>(message) {} + // PrioritizedQueue requres this method to decide which priority to assign + size_t PriorityOrder() const { return (*this)->Priority().OrderingValue(); } +}; + +struct MessageToMobile: public utils::SharedPtr<Message> { + explicit MessageToMobile(const utils::SharedPtr<Message>& message, + bool final_message): + utils::SharedPtr<Message>(message), is_final(final_message) {} + // PrioritizedQueue requres this method to decide which priority to assign + size_t PriorityOrder() const { return (*this)->Priority().OrderingValue(); } + // Signals if connection to mobile must be closed after sending this message + bool is_final; + }; + +struct MessageFromHmi: public utils::SharedPtr<Message> { + explicit MessageFromHmi(const utils::SharedPtr<Message>& message): + utils::SharedPtr<Message>(message) {} + // PrioritizedQueue requres this method to decide which priority to assign + size_t PriorityOrder() const { return (*this)->Priority().OrderingValue(); } +}; + +struct MessageToHmi: public utils::SharedPtr<Message> { + explicit MessageToHmi(const utils::SharedPtr<Message>& message): + utils::SharedPtr<Message>(message) {} + // PrioritizedQueue requres this method to decide which priority to assign + size_t PriorityOrder() const { return (*this)->Priority().OrderingValue(); } +}; + +// Short type names for proiritized message queues +typedef threads::MessageLoopThread< + utils::PrioritizedQueue<MessageFromMobile> > FromMobileQueue; +typedef threads::MessageLoopThread< + utils::PrioritizedQueue<MessageToMobile> > ToMobileQueue; +typedef threads::MessageLoopThread< + utils::PrioritizedQueue<MessageFromHmi> > FromHmiQueue; +typedef threads::MessageLoopThread< + utils::PrioritizedQueue<MessageToHmi> > ToHmiQueue; +} + +class ApplicationManagerImpl : public ApplicationManager, + public hmi_message_handler::HMIMessageObserver, + public protocol_handler::ProtocolObserver, + public connection_handler::ConnectionHandlerObserver, + public impl::FromMobileQueue::Handler, + public impl::ToMobileQueue::Handler, + public impl::FromHmiQueue::Handler, + public impl::ToHmiQueue::Handler, + public utils::Singleton<ApplicationManagerImpl> { + friend class ResumeCtrl; + public: + ~ApplicationManagerImpl(); + + /** + * @brief Stop work. + * + * @return TRUE on success otherwise FALSE. + **/ + virtual bool Stop(); + + ///////////////////////////////////////////////////// + + ApplicationSharedPtr application(int32_t app_id) const; + inline const std::set<ApplicationSharedPtr>& applications() const; + ApplicationSharedPtr active_application() const; + std::vector<ApplicationSharedPtr> applications_by_button(uint32_t button); + std::vector<ApplicationSharedPtr> applications_by_ivi(uint32_t vehicle_info); + std::vector<ApplicationSharedPtr> applications_with_navi(); + + ///////////////////////////////////////////////////// + + HMICapabilities& hmi_capabilities(); + + ApplicationSharedPtr RegisterApplication( + const utils::SharedPtr<smart_objects::SmartObject>& request_for_registration); + /* + * @brief Closes application by id + * + * @param app_id Application id + * @param is_resuming describes - is this unregister + * is normal or need to be resumed + */ + void UnregisterApplication(const uint32_t& app_id, bool is_resuming = false); + + /* + * @brief Sets unregister reason for closing all registered applications + * duringHU switching off + * + * @param reason Describes the reason for HU switching off + */ + void SetUnregisterAllApplicationsReason( + mobile_api::AppInterfaceUnregisteredReason::eType reason); + + /* + * @brief Closes all registered applications + */ + void UnregisterAllApplications(); + + bool RemoveAppDataFromHMI(ApplicationSharedPtr app); + bool LoadAppDataToHMI(ApplicationSharedPtr app); + bool ActivateApplication(ApplicationSharedPtr app); + /** + * @brief Put application in Limited HMI Level if possible, + * otherwise put applicatuion other HMI level. + * do not send any notifications to mobile + * @param app, application, that need to be puted in Limeted + * @return seted HMI Level + */ + mobile_api::HMILevel::eType PutApplicationInLimited(ApplicationSharedPtr app); + + /** + * @brief Put application in FULL HMI Level if possible, + * otherwise put applicatuion other HMI level. + * do not send any notifications to mobile + * @param app, application, that need to be puted in FULL + * @return seted HMI Level + */ + mobile_api::HMILevel::eType PutApplicationInFull(ApplicationSharedPtr app); + + void DeactivateApplication(ApplicationSharedPtr app); + void ConnectToDevice(uint32_t id); + void OnHMIStartedCooperation(); + + /* + * @brief Returns unique correlation ID for HMI request + * + * @return Unique correlation ID + */ + uint32_t GetNextHMICorrelationID(); + + /* @brief Starts audio passthru process + * + * @return true on success, false if passthru is already in process + */ + bool begin_audio_pass_thru(); + + /* + * @brief Finishes already started audio passthru process + * + * @return true on success, false if passthru is not active + */ + bool end_audio_pass_thru(); + + /* + * @brief Retrieves driver distraction state + * + * @return Current state of the distraction state + */ + inline bool driver_distraction() const; + + /* + * @brief Sets state for driver distraction + * + * @param state New state to be set + */ + void set_driver_distraction(bool is_distracting); + + /* + * @brief Retrieves if VR session has started + * + * @return Current VR session state (started, stopped) + */ + inline bool vr_session_started() const; + + /* + * @brief Sets VR session state + * + * @param state Current HMI VR session state + */ + void set_vr_session_started(const bool& state); + + /* + * @brief Retrieves SDL access to all mobile apps + * + * @return Currently active state of the access + */ + inline bool all_apps_allowed() const; + + /* + * @brief Sets SDL access to all mobile apps + * + * @param allowed SDL access to all mobile apps + */ + void set_all_apps_allowed(const bool& allowed); + + /* + * @brief Starts audio pass thru thread + * + * @param session_key Session key of connection for Mobile side + * @param correlation_id Correlation id for response for Mobile side + * @param max_duration Max duration of audio recording in milliseconds + * @param sampling_rate Value for rate(8, 16, 22, 44 kHz) + * @param bits_per_sample The quality the audio is recorded. + * @param audio_type Type of audio data + */ + void StartAudioPassThruThread(int32_t session_key, int32_t correlation_id, + int32_t max_duration, int32_t sampling_rate, + int32_t bits_per_sample, int32_t audio_type); + + /* + * @brief Terminates audio pass thru thread + * @param application_key Id of application for which + * audio pass thru should be stopped + */ + void StopAudioPassThru(int32_t application_key); + + void SendAudioPassThroughNotification(uint32_t session_key, + std::vector<uint8_t> binaryData); + + std::string GetDeviceName(connection_handler::DeviceHandle handle); + + ///////////////////////////////////////////////////// + + void set_hmi_message_handler(hmi_message_handler::HMIMessageHandler* handler); + void set_connection_handler(connection_handler::ConnectionHandler* handler); + virtual void set_policy_manager(policies::PolicyManager* policy_manager); + void set_protocol_handler(protocol_handler::ProtocolHandler* handler); + + /////////////////////////////////////////////////////// + + void StartDevicesDiscovery(); + + // Put message to the queue to be sent to mobile. + // if |final_message| parameter is set connection to mobile will be closed + // after processing this message + void SendMessageToMobile( + const utils::SharedPtr<smart_objects::SmartObject>& message, bool final_message = false); + bool ManageMobileCommand( + const utils::SharedPtr<smart_objects::SmartObject>& message); + void SendMessageToHMI( + const utils::SharedPtr<smart_objects::SmartObject>& message); + bool ManageHMICommand( + const utils::SharedPtr<smart_objects::SmartObject>& message); + + ///////////////////////////////////////////////////////// + /* + * @brief Overriden ProtocolObserver method + */ + virtual void OnMessageReceived(const protocol_handler:: + RawMessagePtr& message); + + /* + * @brief Overriden ProtocolObserver method + */ + virtual void OnMobileMessageSent(const protocol_handler:: + RawMessagePtr& message); + + void OnMessageReceived( + hmi_message_handler::MessageSharedPointer message); + void OnErrorSending(hmi_message_handler::MessageSharedPointer message); + + void OnDeviceListUpdated(const connection_handler::DeviceList& device_list); + void RemoveDevice(const connection_handler::DeviceHandle& device_handle); + bool OnServiceStartedCallback(const connection_handler::DeviceHandle& device_handle, + const int32_t& session_key, + const protocol_handler::ServiceType& type); + void OnServiceEndedCallback(const int32_t& session_key, + const protocol_handler::ServiceType& type); + + /** + * @ Add notification to collection + * + * @param ptr Reference to shared pointer that point on hmi notification + */ + void addNotification(const CommandSharedPtr& ptr); + + /** + * @ Add notification to collection + * + * @param ptr Reference to shared pointer that point on hmi notification + */ + void removeNotification(const CommandSharedPtr& ptr); + + /** + * @ Updates request timeout + * + * @param connection_key Connection key of application + * @param mobile_correlation_id Correlation ID of the mobile request + * @param new_timeout_value New timeout to be set + */ + void updateRequestTimeout(uint32_t connection_key, + uint32_t mobile_correlation_id, + uint32_t new_timeout_value); + + /* + * @brief Retrieves application id associated whith correlation id + * + * @param correlation_id Correlation ID of the HMI request + * + * @return application id associated whith correlation id + */ + const uint32_t application_id(const int32_t correlation_id); + + /* + * @brief Sets application id correlation id + * + * @param correlation_id Correlation ID of the HMI request + * @param app_id Application ID + */ + void set_application_id(const int32_t correlation_id, + const uint32_t app_id); + + /* + * @brief Change AudioStreamingState for all application according to + * system audio-mixing capabilities (NOT_AUDIBLE/ATTENUATED) and + * send notification for this changes + */ + void Mute(); + + /* + * @brief Change AudioStreamingState for all application to AUDIBLE and + * send notification for this changes + */ + void Unmute(); + + /* + * @brief Checks HMI level and returns true if audio streaming is allowed + */ + bool IsAudioStreamingAllowed(uint32_t connection_key) const; + + /* + * @brief Checks HMI level and returns true if video streaming is allowed + */ + bool IsVideoStreamingAllowed(uint32_t connection_key) const; + + /** + * Getter for resume_controller + * @return Resume Controller + */ + ResumeCtrl& resume_controller() { return resume_ctrl_; } + + /* + * @brief Save binary data to specified directory + * + * @param application name + * @param binary file name + * @param binary data + * @param path for saving data + * @param offset for saving data to existing file with offset. If offset is 0 - create new file ( overrite existing ) + * + * @return SUCCESS if file was saved, other code otherwise + */ + mobile_apis::Result::eType SaveBinary( + const std::string& app_name, + const std::vector<uint8_t>& binary_data, + const std::string& save_path, + const uint32_t offset = 0); + + private: + ApplicationManagerImpl(); + bool InitThread(threads::Thread* thread); + hmi_apis::HMI_API& hmi_so_factory(); + mobile_apis::MOBILE_API& mobile_so_factory(); + + void CreateHMIMatrix(HMIMatrix* matrix); + void CreatePoliciesManager(PoliciesManager* managaer); + + /** + * \brief Performs check using PoliciesManager of availability + * of the message for the application. If error occured it is sent + * as response to initiator of request. + * \param message Message received for application + * \param application Application that recieved message to be checked by policies + * \return bool Indicates whether message is allowed for application + */ + bool CheckPolicies(smart_objects::SmartObject* message, + ApplicationSharedPtr app); + + /** + * \brief Using HMIMatrix checks which messages sent to HMI are of higher priority + * and acts accordingly (closes message with lower priority, + * rejects message in case message with higher priority is operating on HMI). + * If error occured it is sent as response to initiator of request. + * \param message Message received for application + * \return bool Indicates whether message is allowed for application + */ + bool CheckHMIMatrix(smart_objects::SmartObject* message); + + bool ConvertMessageToSO(const Message& message, + smart_objects::SmartObject& output); + bool ConvertSOtoMessage(const smart_objects::SmartObject& message, + Message& output); + utils::SharedPtr<Message> ConvertRawMsgToMessage( + const protocol_handler::RawMessagePtr& message); + + void ProcessMessageFromMobile(const utils::SharedPtr<Message>& message); + void ProcessMessageFromHMI(const utils::SharedPtr<Message>& message); + + // threads::MessageLoopThread<*>::Handler implementations + /* + * @brief Handles for threads pumping different types + * of messages. Beware, each is called on different thread! + */ + // CALLED ON messages_from_mobile_ thread! + virtual void Handle(const impl::MessageFromMobile& message) OVERRIDE; + + // CALLED ON messages_to_mobile_ thread! + virtual void Handle(const impl::MessageToMobile& message) OVERRIDE; + + // CALLED ON messages_from_hmi_ thread! + virtual void Handle(const impl::MessageFromHmi& message) OVERRIDE; + + // CALLED ON messages_to_hmi_ thread! + virtual void Handle(const impl::MessageToHmi& message) OVERRIDE; + + private: + + + // members + ResumeCtrl resume_ctrl_; + + /** + * @brief Resume controler is responcible for save and load information + * about persistent application data on disk, and save session ID for resuming + * application in case INGITION_OFF or MASTER_RESSET + */ + + /** + * @brief Map of connection keys and associated applications + */ + std::map<int32_t, ApplicationSharedPtr> applications_; + + /** + * @brief List of applications + */ + std::set<ApplicationSharedPtr> application_list_; + + /** + * @brief Set of HMI notifications with timeout. + */ + std::list<CommandSharedPtr> notification_list_; + + /** + * @brief Map of correlation id and associated application id. + */ + std::map<const int32_t, const uint32_t> appID_list_; + + bool audio_pass_thru_active_; + sync_primitives::Lock audio_pass_thru_lock_; + bool is_distracting_driver_; + bool is_vr_session_strated_; + bool hmi_cooperating_; + bool is_all_apps_allowed_; + media_manager::MediaManager* media_manager_; + + hmi_message_handler::HMIMessageHandler* hmi_handler_; + connection_handler::ConnectionHandler* connection_handler_; + protocol_handler::ProtocolHandler* protocol_handler_; + policies::PolicyManager* policy_manager_; + request_controller::RequestController request_ctrl_; + HMICapabilities hmi_capabilities_; + + // TODO(YS): Remove old implementation + policies_manager::PoliciesManager policies_manager_; + + hmi_apis::HMI_API* hmi_so_factory_; + mobile_apis::MOBILE_API* mobile_so_factory_; + + static log4cxx::LoggerPtr logger_; + + static uint32_t corelation_id_; + static const uint32_t max_corelation_id_; + + // The reason of HU shutdown + mobile_api::AppInterfaceUnregisteredReason::eType unregister_reason_; + + // Construct message threads when everything is already created + + // Thread that pumps messages coming from mobile side. + impl::FromMobileQueue messages_from_mobile_; + // Thread that pumps messages being passed to mobile side. + impl::ToMobileQueue messages_to_mobile_; + // Thread that pumps messages coming from HMI. + impl::FromHmiQueue messages_from_hmi_; + // Thread that pumps messages being passed to HMI. + impl::ToHmiQueue messages_to_hmi_; + + // Lock for applications list + sync_primitives::Lock applications_list_lock_; + + DISALLOW_COPY_AND_ASSIGN(ApplicationManagerImpl); + + FRIEND_BASE_SINGLETON_CLASS(ApplicationManagerImpl); +}; + +const std::set<ApplicationSharedPtr>& ApplicationManagerImpl::applications() const { + return application_list_; +} + +bool ApplicationManagerImpl::vr_session_started() const { + return is_vr_session_strated_; +} + +bool ApplicationManagerImpl::driver_distraction() const { + return is_distracting_driver_; +} + +inline bool ApplicationManagerImpl::all_apps_allowed() const { + return is_all_apps_allowed_; +} +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/command.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/command.h new file mode 100644 index 000000000..843a20bbb --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/command.h @@ -0,0 +1,81 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_H_ + +#include "utils/shared_ptr.h" +#include "smart_objects/smart_object.h" +#include "application_manager/smart_object_keys.h" + +namespace application_manager { + +/** + * @brief SmartObject type + **/ + +namespace smart_objects = NsSmartDeviceLink::NsSmartObjects; +typedef utils::SharedPtr<smart_objects::SmartObject> MessageSharedPtr; + +namespace commands { + +/** + * @brief Base command class + **/ +class Command { + public: + /** + * @brief Command initialization function + **/ + virtual bool Init() = 0; + + /** + * @brief Execute command + **/ + virtual void Run() = 0; + + /** + * @brief Free resources + **/ + virtual bool CleanUp() = 0; + + /** + * \brief Command class destructor + **/ + virtual ~Command() {} +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/command_impl.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_impl.h new file mode 100644 index 000000000..8fab40efd --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_impl.h @@ -0,0 +1,94 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_IMPL_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_IMPL_H_ + +#include "application_manager/commands/command.h" +#include "utils/logger.h" + +namespace application_manager { + +namespace commands { + +extern log4cxx::LoggerPtr logger_; + +/** + * @brief Class is intended to encapsulate RPC as an object + **/ +class CommandImpl : public Command { + public: + /** + * @brief CommandImpl class constructor + * + * @param message Incoming SmartObject message + **/ + explicit CommandImpl(const MessageSharedPtr& message); + + /** + * @brief CommandImpl class destructor + * + **/ + virtual ~CommandImpl(); + + /** + * @brief Init required by command resources + **/ + virtual bool Init(); + + /** + * @brief Cleanup all resources used by command + **/ + virtual bool CleanUp(); + + /** + * @brief Execute corresponding command by calling the action on reciever + **/ + virtual void Run(); + + // members + static const int32_t hmi_protocol_type_; + static const int32_t mobile_protocol_type_; + static const int32_t protocol_version_; + + protected: + MessageSharedPtr message_; + + private: + DISALLOW_COPY_AND_ASSIGN(CommandImpl); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_IMPL_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/command_notification_impl.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_notification_impl.h new file mode 100644 index 000000000..7d0d11af8 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_notification_impl.h @@ -0,0 +1,64 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_NOTIFICATION_IMPL_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_NOTIFICATION_IMPL_H_ + +#include "application_manager/commands/command_impl.h" + +namespace NsSmartDeviceLink { +namespace NsSmartObjects { +class SmartObject; +} +} + +namespace application_manager { + +namespace commands { + +class CommandNotificationImpl : public CommandImpl { + public: + explicit CommandNotificationImpl(const MessageSharedPtr& message); + virtual ~CommandNotificationImpl(); + virtual bool Init(); + virtual bool CleanUp(); + virtual void Run(); + void SendNotification(); + private: + DISALLOW_COPY_AND_ASSIGN(CommandNotificationImpl); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_NOTIFICATION_IMPL_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/command_request_impl.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_request_impl.h new file mode 100644 index 000000000..008894b22 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_request_impl.h @@ -0,0 +1,178 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_REQUEST_IMPL_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_REQUEST_IMPL_H_ + +#include "application_manager/commands/command_impl.h" +#include "application_manager/event_engine/event_observer.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" +#include "utils/lock.h" + +namespace NsSmartDeviceLink { +namespace NsSmartObjects { +class SmartObject; +} +} + +namespace application_manager { + +namespace commands { + +namespace NsSmart = NsSmartDeviceLink::NsSmartObjects; + +class CommandRequestImpl : public CommandImpl, + public event_engine::EventObserver { + public: + + enum RequestState { + kAwaitingHMIResponse = 0, + kTimedOut, + kCompleted + }; + + explicit CommandRequestImpl(const MessageSharedPtr& message); + virtual ~CommandRequestImpl(); + virtual bool Init(); + virtual bool CleanUp(); + virtual void Run(); + + /* + * @brief Function is called by RequestController when request execution time + * has exceed it's limit + * + */ + virtual void onTimeOut(); + + /** + * @brief Default EvenObserver's pure virtual method implementation + * + * @param event The received event + */ + virtual void on_event(const event_engine::Event& event); + + /** + * @brief Retrieves request default timeout. + * If request has a custom timeout, request_timeout_ should be reassign to it + * + * @return Request default timeout + */ + inline unsigned int default_timeout() const; + + /* + * @brief Retrieves request ID + */ + inline int function_id() const; + + /* + * @brief Retrieves correlation ID + */ + inline int correlation_id() const; + + /* + * @brief Retrieves connection key + */ + inline int connection_key() const; + + /* + * @brief Creates Mobile response + * + * @param success true if successful; false, if failed + * @param result_code Result code (SUCCESS, INVALID_DATA, e.t.c) + * @param info Provides additional human readable info regarding the result + * @param response_params Additional params in response + */ + void SendResponse(const bool success, + const mobile_apis::Result::eType& result_code, + const char* info = NULL, + const NsSmart::SmartObject* response_params = NULL); + + /** + * @brief Check syntax of string from mobile + * @param str - string that need to be checked + * @param allow_empty_string if true methos allow empty sting + * @return true if succes otherwise return false + */ + bool CheckSyntax(std::string str, bool allow_empty_line = false); + + /* + * @brief Sends HMI request + * + * @param function_id HMI request ID + * @param msg_params HMI request msg params + * @param use_events true if we need subscribe on event(HMI request) + * + */ + void SendHMIRequest(const hmi_apis::FunctionID::eType& function_id, + const NsSmart::SmartObject* msg_params = NULL, + bool use_events = false); + + /* + * @brief Creates HMI request + * + * @param function_id HMI request ID + * @param msg_params HMI request msg params + */ + void CreateHMINotification(const hmi_apis::FunctionID::eType& function_id, + const NsSmart::SmartObject& msg_params) const; + + protected: + unsigned int default_timeout_; + RequestState current_state_; + sync_primitives::Lock state_lock_; + + private: + DISALLOW_COPY_AND_ASSIGN(CommandRequestImpl); +}; + +unsigned int CommandRequestImpl::default_timeout() const { + return default_timeout_; +} + +int CommandRequestImpl::function_id() const { + return (*message_)[strings::params][strings::function_id].asInt(); +} + +int CommandRequestImpl::correlation_id() const { + return (*message_)[strings::params][strings::correlation_id].asInt(); +} + +int CommandRequestImpl::connection_key() const { + return (*message_)[strings::params][strings::connection_key].asInt(); +} + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_REQUEST_IMPL_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/command_response_impl.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_response_impl.h new file mode 100644 index 000000000..0c93bf54d --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_response_impl.h @@ -0,0 +1,68 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_RESPONSE_IMPL_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_RESPONSE_IMPL_H_ + +#include "application_manager/commands/command_impl.h" +#include "interfaces/MOBILE_API.h" + +namespace NsSmartDeviceLink { +namespace NsSmartObjects { +class SmartObject; +} +} + +namespace application_manager { + +namespace commands { + +class CommandResponseImpl : public CommandImpl { + public: + explicit CommandResponseImpl(const MessageSharedPtr& message); + virtual ~CommandResponseImpl(); + virtual bool Init(); + virtual bool CleanUp(); + virtual void Run(); + void SendResponse(bool successe, + const mobile_apis::Result::eType& result_code = + mobile_apis::Result::INVALID_ENUM, + bool final_message = false); + private: + DISALLOW_COPY_AND_ASSIGN(CommandResponseImpl); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_RESPONSE_IMPL_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/activate_app_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/activate_app_request.h new file mode 100644 index 000000000..1329178c3 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/activate_app_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ACTIVATE_APP_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ACTIVATE_APP_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ActivateAppRequest command class + **/ +class ActivateAppRequest : public RequestToHMI { + public: + /** + * @brief ActivateAppRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ActivateAppRequest(const MessageSharedPtr& message); + + /** + * @brief ActivateAppRequest class destructor + **/ + virtual ~ActivateAppRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(ActivateAppRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ACTIVATE_APP_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/activate_app_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/activate_app_response.h new file mode 100644 index 000000000..1df9bc095 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/activate_app_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ACTIVATE_APP_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ACTIVATE_APP_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ActivateAppResponse command class + **/ +class ActivateAppResponse : public ResponseFromHMI { + public: + /** + * @brief ActivateAppResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ActivateAppResponse(const MessageSharedPtr& message); + + /** + * @brief ActivateAppResponse class destructor + **/ + virtual ~ActivateAppResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(ActivateAppResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ACTIVATE_APP_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_request.h new file mode 100644 index 000000000..6c2db489c --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_ALL_APPS_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_ALL_APPS_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief AllowAllAppsRequest command class + **/ +class AllowAllAppsRequest : public RequestToHMI { + public: + /** + * @brief AllowAllAppsRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AllowAllAppsRequest(const MessageSharedPtr& message); + + /** + * @brief AllowAllAppsRequest class destructor + **/ + virtual ~AllowAllAppsRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(AllowAllAppsRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_ALL_APPS_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_response.h new file mode 100644 index 000000000..0eb8184fa --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_ALL_APPS_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_ALL_APPS_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief AllowAllAppsResponse command class + **/ +class AllowAllAppsResponse : public ResponseFromHMI { + public: + /** + * @brief AllowAllAppsResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AllowAllAppsResponse(const MessageSharedPtr& message); + + /** + * @brief AllowAllAppsResponse class destructor + **/ + virtual ~AllowAllAppsResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(AllowAllAppsResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_ALL_APPS_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_app_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_app_request.h new file mode 100644 index 000000000..91228440a --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_app_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_APP_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_APP_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief AllowAppRequest command class + **/ +class AllowAppRequest : public RequestToHMI { + public: + /** + * @brief AllowAppRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AllowAppRequest(const MessageSharedPtr& message); + + /** + * @brief AllowAppRequest class destructor + **/ + virtual ~AllowAppRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(AllowAppRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_APP_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_app_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_app_response.h new file mode 100644 index 000000000..5a24ac1a7 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_app_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_APP_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_APP_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief AllowAppResponse command class + **/ +class AllowAppResponse : public ResponseFromHMI { + public: + /** + * @brief AllowAppResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AllowAppResponse(const MessageSharedPtr& message); + + /** + * @brief AllowAppResponse class destructor + **/ + virtual ~AllowAppResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(AllowAppResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_APP_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_start_stream_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_start_stream_request.h new file mode 100644 index 000000000..39a3ecab4 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_start_stream_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_START_STREAM_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_START_STREAM_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief AudioStartStreamRequest command class + **/ +class AudioStartStreamRequest : public RequestToHMI { + public: + /** + * @brief AudioStartStreamRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AudioStartStreamRequest(const MessageSharedPtr& message); + + /** + * @brief OnNaviStartStreamRequest class destructor + **/ + virtual ~AudioStartStreamRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(AudioStartStreamRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_START_STREAM_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_start_stream_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_start_stream_response.h new file mode 100644 index 000000000..8b816eb82 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_start_stream_response.h @@ -0,0 +1,71 @@ +/* Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_START_STREAM_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_START_STREAM_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief AudioStartStreamResponse command class + **/ +class AudioStartStreamResponse : public ResponseFromHMI { + public: + /** + * @brief AudioStartStreamResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AudioStartStreamResponse(const MessageSharedPtr& message); + + /** + * @brief AudioStartStreamResponse class destructor + **/ + virtual ~AudioStartStreamResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(AudioStartStreamResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_START_STREAM_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_stop_stream_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_stop_stream_request.h new file mode 100644 index 000000000..c5a1e7543 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_stop_stream_request.h @@ -0,0 +1,71 @@ +/* Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_STOP_STREAM_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_STOP_STREAM_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief AudioStopStreamRequest command class + **/ +class AudioStopStreamRequest : public RequestToHMI { + public: + /** + * @brief AudioStopStreamRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AudioStopStreamRequest(const MessageSharedPtr& message); + + /** + * @brief NaviStopStreamRequest class destructor + **/ + virtual ~AudioStopStreamRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(AudioStopStreamRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_STOP_STREAM_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_stop_stream_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_stop_stream_response.h new file mode 100644 index 000000000..972892469 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_stop_stream_response.h @@ -0,0 +1,71 @@ +/* Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_STOP_STREAM_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_STOP_STREAM_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief NaviStopStreamResponse command class + **/ +class AudioStopStreamResponse : public ResponseFromHMI { + public: + /** + * @brief AudioStopStreamResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AudioStopStreamResponse(const MessageSharedPtr& message); + + /** + * @brief OnNaviStopStreamResponse class destructor + **/ + virtual ~AudioStopStreamResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(AudioStopStreamResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_STOP_STREAM_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_request.h new file mode 100644 index 000000000..3c9fbac68 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_BUTTON_GET_CAPABILITIES_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_BUTTON_GET_CAPABILITIES_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ButtonGetCapabilitiesRequest command class + **/ +class ButtonGetCapabilitiesRequest : public RequestToHMI { + public: + /** + * @brief ButtonGetCapabilitiesRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ButtonGetCapabilitiesRequest(const MessageSharedPtr& message); + + /** + * @brief ButtonGetCapabilitiesRequest class destructor + **/ + virtual ~ButtonGetCapabilitiesRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(ButtonGetCapabilitiesRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_BUTTON_GET_CAPABILITIES_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_response.h new file mode 100644 index 000000000..067954537 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_BUTTON_GET_CAPABILITIES_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_BUTTON_GET_CAPABILITIES_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ButtonGetCapabilitiesResponse command class + **/ +class ButtonGetCapabilitiesResponse : public ResponseFromHMI { + public: + /** + * @brief ButtonGetCapabilitiesResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ButtonGetCapabilitiesResponse(const MessageSharedPtr& message); + + /** + * @brief ButtonGetCapabilitiesResponse class destructor + **/ + virtual ~ButtonGetCapabilitiesResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(ButtonGetCapabilitiesResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_BUTTON_GET_CAPABILITIES_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/close_popup_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/close_popup_request.h new file mode 100644 index 000000000..72ff8a2c5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/close_popup_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_CLOSE_POPUP_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_CLOSE_POPUP_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ClosePopupRequest command class + **/ +class ClosePopupRequest : public RequestToHMI { + public: + /** + * @brief ClosePopupRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ClosePopupRequest(const MessageSharedPtr& message); + + /** + * @brief ClosePopupRequest class destructor + **/ + virtual ~ClosePopupRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(ClosePopupRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_CLOSE_POPUP_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/close_popup_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/close_popup_response.h new file mode 100644 index 000000000..05318e3cb --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/close_popup_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_CLOSE_POPUP__RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_CLOSE_POPUP__RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ClosePopupResponse command class + **/ +class ClosePopupResponse : public ResponseFromHMI { + public: + /** + * @brief ClosePopupResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ClosePopupResponse(const MessageSharedPtr& message); + + /** + * @brief ClosePopupResponse class destructor + **/ + virtual ~ClosePopupResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(ClosePopupResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_CLOSE_POPUP__RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_request.h new file mode 100644 index 000000000..905b5b383 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_MIXING_AUDIO_SUPPORTED_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_MIXING_AUDIO_SUPPORTED_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief MixingAudioSupportedRequest command class + **/ +class MixingAudioSupportedRequest : public RequestToHMI { + public: + /** + * @brief MixingAudioSupportedRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit MixingAudioSupportedRequest(const MessageSharedPtr& message); + + /** + * @brief MixingAudioSupportedRequest class destructor + **/ + virtual ~MixingAudioSupportedRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(MixingAudioSupportedRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_MIXING_AUDIO_SUPPORTED_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_response.h new file mode 100644 index 000000000..c8bfe4e15 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_MIXING_AUDIO_SUPPORTED_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_MIXING_AUDIO_SUPPORTED_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief MixingAudioSupportedResponse command class + **/ +class MixingAudioSupportedResponse : public ResponseFromHMI { + public: + /** + * @brief MixingAudioSupportedResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit MixingAudioSupportedResponse(const MessageSharedPtr& message); + + /** + * @brief MixingAudioSupportedResponse class destructor + **/ + virtual ~MixingAudioSupportedResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(MixingAudioSupportedResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_MIXING_AUDIO_SUPPORTED_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_request.h new file mode 100644 index 000000000..1e2a39df9 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_ALERT_MANEUVER_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_ALERT_MANEUVER_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief NaviAlertManeuverRequest command class + **/ +class NaviAlertManeuverRequest : public RequestToHMI { + public: + /** + * @brief NaviAlertManeuverRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit NaviAlertManeuverRequest(const MessageSharedPtr& message); + + /** + * @brief NaviAlertManeuverRequest class destructor + **/ + virtual ~NaviAlertManeuverRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(NaviAlertManeuverRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_ALERT_MANEUVER_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_response.h new file mode 100644 index 000000000..41e0f623f --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_ALERT_MANEUVER_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_ALERT_MANEUVER_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief NaviAlertManeuverResponse command class + **/ +class NaviAlertManeuverResponse : public ResponseFromHMI { + public: + /** + * @brief NaviAlertManeuverResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit NaviAlertManeuverResponse(const MessageSharedPtr& message); + + /** + * @brief NaviAlertManeuverResponse class destructor + **/ + virtual ~NaviAlertManeuverResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(NaviAlertManeuverResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_ALERT_MANEUVER_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_request.h new file mode 100644 index 000000000..a31efc7fe --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_IS_READY_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_IS_READY_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief NaviIsReadyRequest command class + **/ +class NaviIsReadyRequest : public RequestToHMI { + public: + /** + * @brief NaviIsReadyRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit NaviIsReadyRequest(const MessageSharedPtr& message); + + /** + * @brief NaviIsReadyRequest class destructor + **/ + virtual ~NaviIsReadyRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(NaviIsReadyRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVIGATION_IS_READY_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_response.h new file mode 100644 index 000000000..0fbad3515 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_IS_READY_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_IS_READY_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief NaviIsReadyResponse command class + **/ +class NaviIsReadyResponse : public ResponseFromHMI { + public: + /** + * @brief NaviIsReadyResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit NaviIsReadyResponse(const MessageSharedPtr& message); + + /** + * @brief NaviIsReadyResponse class destructor + **/ + virtual ~NaviIsReadyResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(NaviIsReadyResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_IS_READY_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h new file mode 100644 index 000000000..5da47e580 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_SHOW_CONSTANT_TBT_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_SHOW_CONSTANT_TBT_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief NaviShowConstantTBTRequest command class + **/ +class NaviShowConstantTBTRequest : public RequestToHMI { + public: + /** + * @brief NaviShowConstantTBTRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit NaviShowConstantTBTRequest(const MessageSharedPtr& message); + + /** + * @brief NaviShowConstantTBTRequest class destructor + **/ + virtual ~NaviShowConstantTBTRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(NaviShowConstantTBTRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_SHOW_CONSTANT_TBT_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h new file mode 100644 index 000000000..4a26b26b0 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_SHOW_CONSTANT_TBT_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_SHOW_CONSTANT_TBT_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief NaviShowConstantTBTResponse command class + **/ +class NaviShowConstantTBTResponse : public ResponseFromHMI { + public: + /** + * @brief NaviShowConstantTBTResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit NaviShowConstantTBTResponse(const MessageSharedPtr& message); + + /** + * @brief NaviShowConstantTBTResponse class destructor + **/ + virtual ~NaviShowConstantTBTResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(NaviShowConstantTBTResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_SHOW_CONSTANT_TBT_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h new file mode 100644 index 000000000..f43b99221 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_START_STREAM_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_START_STREAM_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief NaviStartStreamRequest command class + **/ +class NaviStartStreamRequest : public RequestToHMI { + public: + /** + * @brief NaviStartStreamRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit NaviStartStreamRequest(const MessageSharedPtr& message); + + /** + * @brief OnNaviStartStreamRequest class destructor + **/ + virtual ~NaviStartStreamRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(NaviStartStreamRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_START_STREAM_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_response.h new file mode 100644 index 000000000..c94b6f219 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_response.h @@ -0,0 +1,71 @@ +/* Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_START_STREAM_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_START_STREAM_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief NaviStartStreamResponse command class + **/ +class NaviStartStreamResponse : public ResponseFromHMI { + public: + /** + * @brief NaviStartStreamResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit NaviStartStreamResponse(const MessageSharedPtr& message); + + /** + * @brief NaviStartStreamResponse class destructor + **/ + virtual ~NaviStartStreamResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(NaviStartStreamResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_START_STREAM_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_stop_stream_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_stop_stream_request.h new file mode 100644 index 000000000..86b0981c2 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_stop_stream_request.h @@ -0,0 +1,71 @@ +/* Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_STOP_STREAM_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_STOP_STREAM_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief NaviStopStreamRequest command class + **/ +class NaviStopStreamRequest : public RequestToHMI { + public: + /** + * @brief NaviStopStreamRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit NaviStopStreamRequest(const MessageSharedPtr& message); + + /** + * @brief NaviStopStreamRequest class destructor + **/ + virtual ~NaviStopStreamRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(NaviStopStreamRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_STOP_STREAM_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_stop_stream_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_stop_stream_response.h new file mode 100644 index 000000000..6f4986e4c --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_stop_stream_response.h @@ -0,0 +1,71 @@ +/* Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_STOP_STREAM_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_STOP_STREAM_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief NaviStopStreamResponse command class + **/ +class NaviStopStreamResponse : public ResponseFromHMI { + public: + /** + * @brief NaviStopStreamResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit NaviStopStreamResponse(const MessageSharedPtr& message); + + /** + * @brief OnNaviStopStreamResponse class destructor + **/ + virtual ~NaviStopStreamResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(NaviStopStreamResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_STOP_STREAM_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_request.h new file mode 100644 index 000000000..61beef1b3 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_UPDATE_TURN_LIST_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_UPDATE_TURN_LIST_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief NaviUpdateTurnListRequest command class + **/ +class NaviUpdateTurnListRequest : public RequestToHMI { + public: + /** + * @brief NaviUpdateTurnListRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit NaviUpdateTurnListRequest(const MessageSharedPtr& message); + + /** + * @brief NaviUpdateTurnListRequest class destructor + **/ + virtual ~NaviUpdateTurnListRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(NaviUpdateTurnListRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_UPDATE_TURN_LIST_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_response.h new file mode 100644 index 000000000..9e711b8be --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_UPDATE_TURN_LIST_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_UPDATE_TURN_LIST_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief NaviUpdateTurnListResponse command class + **/ +class NaviUpdateTurnListResponse : public ResponseFromHMI { + public: + /** + * @brief NaviUpdateTurnListResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit NaviUpdateTurnListResponse(const MessageSharedPtr& message); + + /** + * @brief NaviUpdateTurnListResponse class destructor + **/ + virtual ~NaviUpdateTurnListResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(NaviUpdateTurnListResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_UPDATE_TURN_LIST_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/notification_from_hmi.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/notification_from_hmi.h new file mode 100644 index 000000000..219306d37 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/notification_from_hmi.h @@ -0,0 +1,69 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NOTIFICATION_FROM_HMI_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NOTIFICATION_FROM_HMI_H_ + +#include "application_manager/commands/command_impl.h" +#include "interfaces/HMI_API.h" + +namespace NsSmartDeviceLink { +namespace NsSmartObjects { +class CSmartObject; +} +} + +namespace application_manager { + +namespace commands { + +namespace NsSmartObj = NsSmartDeviceLink::NsSmartObjects; + +class NotificationFromHMI : public CommandImpl { + public: + explicit NotificationFromHMI(const MessageSharedPtr& message); + virtual ~NotificationFromHMI(); + virtual bool Init(); + virtual bool CleanUp(); + virtual void Run(); + void SendNotificationToMobile(const MessageSharedPtr& message); + void CreateHMIRequest(const hmi_apis::FunctionID::eType& function_id, + const NsSmartObj::SmartObject& msg_params) const; + private: + DISALLOW_COPY_AND_ASSIGN(NotificationFromHMI); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NOTIFICATION_FROM_HMI_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/notification_to_hmi.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/notification_to_hmi.h new file mode 100644 index 000000000..2372754b6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/notification_to_hmi.h @@ -0,0 +1,58 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NOTIFICATION_TO_HMI_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NOTIFICATION_TO_HMI_H_ + +#include "application_manager/commands/command_impl.h" + +namespace application_manager { + +namespace commands { + +class NotificationToHMI : public CommandImpl { + public: + explicit NotificationToHMI(const MessageSharedPtr& message); + virtual ~NotificationToHMI(); + virtual bool Init(); + virtual bool CleanUp(); + virtual void Run(); + void SendNotification(); + private: + DISALLOW_COPY_AND_ASSIGN(NotificationToHMI); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NOTIFICATION_TO_HMI_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_activated_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_activated_notification.h new file mode 100644 index 000000000..a8bdeb6c9 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_activated_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_ACTIVATED_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_ACTIVATED_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnAppActivatedNotification command class + **/ +class OnAppActivatedNotification : public NotificationFromHMI { + public: + /** + * @brief OnAppActivatedNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnAppActivatedNotification(const MessageSharedPtr& message); + + /** + * @brief OnAppActivatedNotification class destructor + **/ + virtual ~OnAppActivatedNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnAppActivatedNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_ACTIVATED_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_deactivated_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_deactivated_notification.h new file mode 100644 index 000000000..4c56dc415 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_deactivated_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_DEACTIVATED_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_DEACTIVATED_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnAppDeactivatedNotification command class + **/ +class OnAppDeactivatedNotification : public NotificationFromHMI { + public: + /** + * @brief OnAppDeactivatedNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnAppDeactivatedNotification(const MessageSharedPtr& message); + + /** + * @brief OnAppDeactivatedNotification class destructor + **/ + virtual ~OnAppDeactivatedNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnAppDeactivatedNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_DEACTIVATED_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_registered_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_registered_notification.h new file mode 100644 index 000000000..4364aa9a3 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_registered_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_REGISTERED_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_REGISTERED_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnAppRegisteredNotification command class + **/ +class OnAppRegisteredNotification : public NotificationToHMI { + public: + /** + * @brief OnAppRegisteredNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnAppRegisteredNotification(const MessageSharedPtr& message); + + /** + * @brief OnAppRegisteredNotification class destructor + **/ + virtual ~OnAppRegisteredNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnAppRegisteredNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_REGISTERED_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_unregistered_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_unregistered_notification.h new file mode 100644 index 000000000..d8470af39 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_unregistered_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_UNREGISTERED_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_UNREGISTERED_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnAppUnregisteredNotification command class + **/ +class OnAppUnregisteredNotification : public NotificationToHMI { + public: + /** + * @brief OnAppUnregisteredNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnAppUnregisteredNotification(const MessageSharedPtr& message); + + /** + * @brief OnAppUnregisteredNotification class destructor + **/ + virtual ~OnAppUnregisteredNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnAppUnregisteredNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_UNREGISTERED_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_button_event_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_button_event_notification.h new file mode 100644 index 000000000..0e2ffc300 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_button_event_notification.h @@ -0,0 +1,78 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_BUTTON_EVENT_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_BUTTON_EVENT_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +class Application; + +namespace commands { + +namespace hmi { + +/** + * @brief OnButtonEventNotification command class + **/ +class OnButtonEventNotification : public NotificationFromHMI { + public: + /** + * @brief OnButtonEventNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnButtonEventNotification(const MessageSharedPtr& message); + + /** + * @brief OnButtonEventNotification class destructor + **/ + virtual ~OnButtonEventNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnButtonEventNotification); +}; + +} // namespace hmi + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_BUTTON_EVENT_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_button_press_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_button_press_notification.h new file mode 100644 index 000000000..a54c7584f --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_button_press_notification.h @@ -0,0 +1,78 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_BUTTON_PRESS_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_BUTTON_PRESS_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +class Application; + +namespace commands { + +namespace hmi { + +/** + * @brief OnButtonPressNotification command class + **/ +class OnButtonPressNotification : public NotificationFromHMI { + public: + /** + * @brief OnButtonPressNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnButtonPressNotification(const MessageSharedPtr& message); + + /** + * @brief OnButtonPressNotification class destructor + **/ + virtual ~OnButtonPressNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnButtonPressNotification); +}; + +} // namespace hmi + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_BUTTON_PRESS_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_device_chosen_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_device_chosen_notification.h new file mode 100644 index 000000000..e980bfe41 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_device_chosen_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DEVICE_CHOSEN_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DEVICE_CHOSEN_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnDeviceChosenNotification command class + **/ +class OnDeviceChosenNotification : public NotificationFromHMI { + public: + /** + * @brief OnDeviceChosenNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnDeviceChosenNotification(const MessageSharedPtr& message); + + /** + * @brief OnDeviceChosenNotification class destructor + **/ + virtual ~OnDeviceChosenNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnDeviceChosenNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DEVICE_CHOSEN_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_driver_distraction_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_driver_distraction_notification.h new file mode 100644 index 000000000..77da5cf3b --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_driver_distraction_notification.h @@ -0,0 +1,78 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DRIVER_DISTRACTION_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DRIVER_DISTRACTION_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +class Application; + +namespace commands { + +namespace hmi { + +/** + * @brief OnDriverDistractionNotification command class + **/ +class OnDriverDistractionNotification : public NotificationFromHMI { + public: + /** + * @brief OnDriverDistractionNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnDriverDistractionNotification(const MessageSharedPtr& message); + + /** + * @brief OnDriverDistractionNotification class destructor + **/ + virtual ~OnDriverDistractionNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnDriverDistractionNotification); +}; + +} // namespace hmi + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DRIVER_DISTRACTION_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_exit_all_applications_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_exit_all_applications_notification.h new file mode 100644 index 000000000..0140e649c --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_exit_all_applications_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_EXIT_ALL_APPLICATIONS_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_EXIT_ALL_APPLICATIONS_REQUEST_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnExitAllApplicationsNotification command class + **/ +class OnExitAllApplicationsNotification : public NotificationFromHMI { + public: + /** + * @brief OnExitAllApplicationsNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnExitAllApplicationsNotification(const MessageSharedPtr& message); + + /** + * @brief OnExitAllApplicationsNotification class destructor + **/ + virtual ~OnExitAllApplicationsNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnExitAllApplicationsNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_EXIT_ALL_APPLICATIONS_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_exit_application_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_exit_application_notification.h new file mode 100644 index 000000000..b78c0e2af --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_exit_application_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_EXIT_APPLICATION_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_EXIT_APPLICATION_REQUEST_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnExitApplicationNotification command class + **/ +class OnExitApplicationNotification : public NotificationFromHMI { + public: + /** + * @brief OnExitApplicationNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnExitApplicationNotification(const MessageSharedPtr& message); + + /** + * @brief OnExitApplicationNotification class destructor + **/ + virtual ~OnExitApplicationNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnExitApplicationNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_EXIT_APPLICATION_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_find_applications.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_find_applications.h new file mode 100644 index 000000000..2499129b2 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_find_applications.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DEVICE_LIST_UPDATED_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DEVICE_LIST_UPDATED_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnFindApplications command class + **/ +class OnFindApplications : public NotificationFromHMI { + public: + /** + * @brief OnFindApplications class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnFindApplications(const MessageSharedPtr& message); + + /** + * @brief OnFindApplications class destructor + **/ + virtual ~OnFindApplications(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnFindApplications); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DEVICE_LIST_UPDATED_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h new file mode 100644 index 000000000..6e42e1a0c --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_NAVI_TBT_CLIENT_STATE_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_NAVI_TBT_CLIENT_STATE_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnNaviTBTClientStateNotification command class + **/ +class OnNaviTBTClientStateNotification : public NotificationFromHMI { + public: + /** + * @brief OnNaviTBTClientStateNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnNaviTBTClientStateNotification(const MessageSharedPtr& message); + + /** + * @brief OnNaviTBTClientStateNotification class destructor + **/ + virtual ~OnNaviTBTClientStateNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnNaviTBTClientStateNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_NAVI_TBT_CLIENT_STATE_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_play_tone_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_play_tone_notification.h new file mode 100644 index 000000000..8e463c327 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_play_tone_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_PLAY_TONE_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_PLAY_TONE_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnPlayToneNotification command class + **/ +class OnPlayToneNotification : public NotificationToHMI { + public: + /** + * @brief OnPlayToneNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnPlayToneNotification(const MessageSharedPtr& message); + + /** + * @brief OnPlayToneNotification class destructor + **/ + virtual ~OnPlayToneNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnPlayToneNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_PLAY_TONE_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ready_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ready_notification.h new file mode 100644 index 000000000..a3e2dd731 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ready_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_READY_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_READY_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnReadyNotification command class + **/ +class OnReadyNotification : public NotificationFromHMI { + public: + /** + * @brief OnReadyNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnReadyNotification(const MessageSharedPtr& message); + + /** + * @brief OnReadyNotification class destructor + **/ + virtual ~OnReadyNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnReadyNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_READY_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_close_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_close_notification.h new file mode 100644 index 000000000..e6b4418d6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_close_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SDL_CLOSE_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SDL_CLOSE_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnSDLCloseNotification command class + **/ +class OnSDLCloseNotification : public NotificationToHMI { + public: + /** + * @brief OnSDLCloseNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnSDLCloseNotification(const MessageSharedPtr& message); + + /** + * @brief OnSdlCloseNotification class destructor + **/ + virtual ~OnSDLCloseNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnSDLCloseNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SDL_CLOSE_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_show_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_show_notification.h new file mode 100644 index 000000000..1264d5f67 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_show_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SHOW_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SHOW_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnShowNotification command class + **/ +class OnShowNotification : public NotificationToHMI { + public: + /** + * @brief OnShowNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnShowNotification(const MessageSharedPtr& message); + + /** + * @brief OnShowNotification class destructor + **/ + virtual ~OnShowNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnShowNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SHOW_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_start_device_discovery.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_start_device_discovery.h new file mode 100644 index 000000000..3e4dc1daf --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_start_device_discovery.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_START_DEVICE_DISCOVERY_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_START_DEVICE_DISCOVERY_REQUEST_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnStartDeviceDiscovery command class + **/ +class OnStartDeviceDiscovery : public NotificationFromHMI { + public: + /** + * @brief OnStartDeviceDiscovery class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnStartDeviceDiscovery(const MessageSharedPtr& message); + + /** + * @brief OnStartDeviceDiscovery class destructor + **/ + virtual ~OnStartDeviceDiscovery(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnStartDeviceDiscovery); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_START_DEVICE_DISCOVERY_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_system_context_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_system_context_notification.h new file mode 100644 index 000000000..edf325c2d --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_system_context_notification.h @@ -0,0 +1,74 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SYSTEM_CONTEXT_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SYSTEM_CONTEXT_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +class Application; + +namespace commands { + +/** + * @brief OnSystemContextNotification command class + **/ +class OnSystemContextNotification : public NotificationFromHMI { + public: + /** + * @brief OnSystemContextNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnSystemContextNotification(const MessageSharedPtr& message); + + /** + * @brief OnSystemContextNotification class destructor + **/ + virtual ~OnSystemContextNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnSystemContextNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SYSTEM_CONTEXT_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_system_request_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_system_request_notification.h new file mode 100644 index 000000000..6e3a0eea7 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_system_request_notification.h @@ -0,0 +1,74 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SYSTEM_REQUEST_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SYSTEM_REQUEST_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnSystemRequestNotification command class + **/ +class OnSystemRequestNotification : public NotificationFromHMI { + public: + /** + * @brief OnSystemRequestNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnSystemRequestNotification(const MessageSharedPtr& message); + + /** + * @brief OnSystemRequestNotification class destructor + **/ + virtual ~OnSystemRequestNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + + DISALLOW_COPY_AND_ASSIGN(OnSystemRequestNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SYSTEM_REQUEST_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_language_change_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_language_change_notification.h new file mode 100644 index 000000000..d9b55ac0c --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_language_change_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_LANGUAGE_CHANGE_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_LANGUAGE_CHANGE_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnTTSLanguageChangeNotification command class + **/ +class OnTTSLanguageChangeNotification : public NotificationFromHMI { + public: + /** + * @brief OnTTSLanguageChangeNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnTTSLanguageChangeNotification(const MessageSharedPtr& message); + + /** + * @brief OnTTSLanguageChangeNotification class destructor + **/ + virtual ~OnTTSLanguageChangeNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnTTSLanguageChangeNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_LANGUAGE_CHANGE_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_started_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_started_notification.h new file mode 100644 index 000000000..8cb625607 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_started_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_STARTED_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_STARTED_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnTTSStartedNotification command class + **/ +class OnTTSStartedNotification : public NotificationFromHMI { + public: + /** + * @brief OnTTSStartedNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnTTSStartedNotification(const MessageSharedPtr& message); + + /** + * @brief OnTTSStartedNotification class destructor + **/ + virtual ~OnTTSStartedNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnTTSStartedNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_STARTED_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_stopped_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_stopped_notification.h new file mode 100644 index 000000000..31fb6fb31 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_stopped_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_STOPPED_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_STOPPED_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnTTSStoppedNotification command class + **/ +class OnTTSStoppedNotification : public NotificationFromHMI { + public: + /** + * @brief OnTTSStoppedNotification class constructor + * + * @param message Incoming SmartObject OnTTSStartedNotificationmessage + **/ + explicit OnTTSStoppedNotification(const MessageSharedPtr& message); + + /** + * @brief OnTTSStoppedNotification class destructor + **/ + virtual ~OnTTSStoppedNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnTTSStoppedNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_STOPPED_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_command_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_command_notification.h new file mode 100644 index 000000000..1d0aaf307 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_command_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_COMMAND_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_COMMAND_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnUICommandNotification command class + **/ +class OnUICommandNotification : public NotificationFromHMI { + public: + /** + * @brief OnUICommandNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnUICommandNotification(const MessageSharedPtr& message); + + /** + * @brief OnUICommandNotification class destructor + **/ + virtual ~OnUICommandNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnUICommandNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_COMMAND_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h new file mode 100644 index 000000000..bb0a6a72d --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h @@ -0,0 +1,77 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_KEYBOARD_INPUT_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_KEYBOARD_INPUT_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +namespace hmi { + +/** + * @brief OnUIKeyBoardInputNotification command class + **/ +class OnUIKeyBoardInputNotification : public NotificationFromHMI { + public: + /** + * @brief OnUIKeyBoardInputNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnUIKeyBoardInputNotification(const MessageSharedPtr& message); + + /** + * @brief OnUIKeyBoardInputNotification class destructor + **/ + virtual ~OnUIKeyBoardInputNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnUIKeyBoardInputNotification); +}; + +} // namespace hmi + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_KEYBOARD_INPUT_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_language_change_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_language_change_notification.h new file mode 100644 index 000000000..85b8f60c4 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_language_change_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_LANGUAGE_CHANGE_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_LANGUAGE_CHANGE_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnUILanguageChangeNotification command class + **/ +class OnUILanguageChangeNotification : public NotificationFromHMI { + public: + /** + * @brief OnUILanguageChangeNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnUILanguageChangeNotification(const MessageSharedPtr& message); + + /** + * @brief OnUILanguageChangeNotification class destructor + **/ + virtual ~OnUILanguageChangeNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnUILanguageChangeNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_LANGUAGE_CHANGE_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h new file mode 100644 index 000000000..511606d07 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h @@ -0,0 +1,76 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_RESET_TIMEOUT_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_RESET_TIMEOUT_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +namespace hmi { + +/** + * @brief OnUIResetTimeoutNotification command class + **/ +class OnUIResetTimeoutNotification : public NotificationFromHMI { + public: + /** + * @brief OnUIResetTimeoutNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnUIResetTimeoutNotification(const MessageSharedPtr& message); + + /** + * @brief OnUIResetTimeoutNotification class destructor + **/ + virtual ~OnUIResetTimeoutNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnUIResetTimeoutNotification); +}; + +} // namespace hmi + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_RESET_TIMEOUT_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_touch_event_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_touch_event_notification.h new file mode 100644 index 000000000..3231d1ca2 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_touch_event_notification.h @@ -0,0 +1,77 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_TOUCH_EVENT_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_TOUCH_EVENT_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +namespace hmi { + +/** + * @brief OnUITouchEventNotification command class + **/ +class OnUITouchEventNotification : public NotificationFromHMI { + public: + /** + * @brief OnUITouchEventNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnUITouchEventNotification(const MessageSharedPtr& message); + + /** + * @brief OnUITouchEventNotification class destructor + **/ + virtual ~OnUITouchEventNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnUITouchEventNotification); +}; + +} // namespace hmi + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_TOUCH_EVENT_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_update_device_list.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_update_device_list.h new file mode 100644 index 000000000..b6d7a555d --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_update_device_list.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_DEVICE_LIST_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_DEVICE_LIST_RESPONSE_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnUpdateDeviceList command class + **/ +class OnUpdateDeviceList : public NotificationFromHMI { + public: + /** + * @brief OnUpdateDeviceList class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnUpdateDeviceList(const MessageSharedPtr& message); + + /** + * @brief OnUpdateDeviceList class destructor + **/ + virtual ~OnUpdateDeviceList(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnUpdateDeviceList); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_DEVICE_LIST_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h new file mode 100644 index 000000000..04bb3e54b --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ACC_PEDAL_POSITION_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ACC_PEDAL_POSITION_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIAccPedalPositionNotification command class + **/ +class OnVIAccPedalPositionNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIAccPedalPositionNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIAccPedalPositionNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIAccPedalPositionNotification class destructor + **/ + virtual ~OnVIAccPedalPositionNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIAccPedalPositionNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ACC_PEDAL_POSITION_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_belt_status_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_belt_status_notification.h new file mode 100644 index 000000000..3cfb048cd --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_belt_status_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_BELT_STATUS_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_BELT_STATUS_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIBeltStatusNotification command class + **/ +class OnVIBeltStatusNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIBeltStatusNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIBeltStatusNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIBeltStatusNotification class destructor + **/ + virtual ~OnVIBeltStatusNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIBeltStatusNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_BELT_STATUS_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_body_information_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_body_information_notification.h new file mode 100644 index 000000000..b9ecf5a34 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_body_information_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_BODY_INFORMATION_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_BODY_INFORMATION_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIBodyInformationNotification command class + **/ +class OnVIBodyInformationNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIBodyInformationNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIBodyInformationNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIBodyInformationNotification class destructor + **/ + virtual ~OnVIBodyInformationNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIBodyInformationNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_BODY_INFORMATION_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_device_status_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_device_status_notification.h new file mode 100644 index 000000000..925989e8c --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_device_status_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_DEVICE_STATUS_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_DEVICE_STATUS_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIDeviceStatusNotification command class + **/ +class OnVIDeviceStatusNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIDeviceStatusNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIDeviceStatusNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIDeviceStatusNotification class destructor + **/ + virtual ~OnVIDeviceStatusNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIDeviceStatusNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_DEVICE_STATUS_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h new file mode 100644 index 000000000..7baea9065 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_DRIVER_BRAKING_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_DRIVER_BRAKING_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIDriverBrakingNotification command class + **/ +class OnVIDriverBrakingNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIDriverBrakingNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIDriverBrakingNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIDriverBrakingNotification class destructor + **/ + virtual ~OnVIDriverBrakingNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIDriverBrakingNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_DRIVER_BRAKING_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h new file mode 100644 index 000000000..33dd824c6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ENGINE_TORQUE_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ENGINE_TORQUE_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIEngineTorqueNotification command class + **/ +class OnVIEngineTorqueNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIEngineTorqueNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIEngineTorqueNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIEngineTorqueNotification class destructor + **/ + virtual ~OnVIEngineTorqueNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIEngineTorqueNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ENGINE_TORQUE_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h new file mode 100644 index 000000000..207302a37 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_EXTERNAL_TEMPERATURE_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_EXTERNAL_TEMPERATURE_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIExternalTemperatureNotification command class + **/ +class OnVIExternalTemperatureNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIExternalTemperatureNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIExternalTemperatureNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIExternalTemperatureNotification class destructor + **/ + virtual ~OnVIExternalTemperatureNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIExternalTemperatureNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_EXTERNAL_TEMPERATURE_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h new file mode 100644 index 000000000..535758db2 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_FUEL_LEVEL_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_FUEL_LEVEL_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIFuelLevelNotification command class + **/ +class OnVIFuelLevelNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIFuelLevelNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIFuelLevelNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIFuelLevelNotification class destructor + **/ + virtual ~OnVIFuelLevelNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIFuelLevelNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_FUEL_LEVEL_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h new file mode 100644 index 000000000..92dffd89b --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_FUEL_LEVEL_STATE_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_FUEL_LEVEL_STATE_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIFuelLevelStateNotification command class + **/ +class OnVIFuelLevelStateNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIFuelLevelStateNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIFuelLevelStateNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIFuelLevelStateNotification class destructor + **/ + virtual ~OnVIFuelLevelStateNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIFuelLevelStateNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_FUEL_LEVEL_STATE_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_gps_data_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_gps_data_notification.h new file mode 100644 index 000000000..d8f2a768f --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_gps_data_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_GPS_DATA_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_GPS_DATA_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIGpsDataNotification command class + **/ +class OnVIGpsDataNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIGpsDataNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIGpsDataNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIGpsDataNotification class destructor + **/ + virtual ~OnVIGpsDataNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIGpsDataNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_GPS_DATA_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h new file mode 100644 index 000000000..47802e97e --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_HEAD_LAMP_STATUS_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_HEAD_LAMP_STATUS_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIHeadLampStatusNotification command class + **/ +class OnVIHeadLampStatusNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIHeadLampStatusNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIHeadLampStatusNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIHeadLampStatusNotification class destructor + **/ + virtual ~OnVIHeadLampStatusNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIHeadLampStatusNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_HEAD_LAMP_STATUS_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h new file mode 100644 index 000000000..fe3841298 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_INSTANT_FUEL_CONSUMPTION_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_INSTANT_FUEL_CONSUMPTION_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIInstantFuelConsumptionNotification command class + **/ +class OnVIInstantFuelConsumptionNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIInstantFuelConsumptionNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIInstantFuelConsumptionNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIInstantFuelConsumptionNotification class destructor + **/ + virtual ~OnVIInstantFuelConsumptionNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIInstantFuelConsumptionNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_INSTANT_FUEL_CONSUMPTION_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_my_key_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_my_key_notification.h new file mode 100644 index 000000000..d636b6e77 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_my_key_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_MY_KEY_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_MY_KEY_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIMyKeyNotification command class + **/ +class OnVIMyKeyNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIMyKeyNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIMyKeyNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIMyKeyNotification class destructor + **/ + virtual ~OnVIMyKeyNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIMyKeyNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_MY_KEY_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_odometer_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_odometer_notification.h new file mode 100644 index 000000000..1cf4c2587 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_odometer_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ODOMETER_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ODOMETER_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIOdometerNotification command class + **/ +class OnVIOdometerNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIOdometerNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIOdometerNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIOdometerNotification class destructor + **/ + virtual ~OnVIOdometerNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIOdometerNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ODOMETER_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_prndl_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_prndl_notification.h new file mode 100644 index 000000000..5a3a13637 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_prndl_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_PRNDL_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_PRNDL_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIPrndlNotification command class + **/ +class OnVIPrndlNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIPrndlNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIPrndlNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIPrndlNotification class destructor + **/ + virtual ~OnVIPrndlNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIPrndlNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_PRNDL_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_rpm_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_rpm_notification.h new file mode 100644 index 000000000..80dea2a6e --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_rpm_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_RPM_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_RPM_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIRpmNotification command class + **/ +class OnVIRpmNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIRpmNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIRpmNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIRpmNotification class destructor + **/ + virtual ~OnVIRpmNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIRpmNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_RPM_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_speed_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_speed_notification.h new file mode 100644 index 000000000..19bffabf4 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_speed_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_SPEED_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_SPEED_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVISpeedNotification command class + **/ +class OnVISpeedNotification : public NotificationFromHMI { + public: + /** + * @brief OnVISpeedNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVISpeedNotification(const MessageSharedPtr& message); + + /** + * @brief OnVISpeedNotification class destructor + **/ + virtual ~OnVISpeedNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVISpeedNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_SPEED_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h new file mode 100644 index 000000000..0826cb6c6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_STEERING_WHEEL_ANGLE_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_STEERING_WHEEL_ANGLE_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVISteeringWheelAngleNotification command class + **/ +class OnVISteeringWheelAngleNotification : public NotificationFromHMI { + public: + /** + * @brief OnVISteeringWheelAngleNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVISteeringWheelAngleNotification(const MessageSharedPtr& message); + + /** + * @brief OnVISteeringWheelAngleNotification class destructor + **/ + virtual ~OnVISteeringWheelAngleNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVISteeringWheelAngleNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_STEERING_WHEEL_ANGLE_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h new file mode 100644 index 000000000..ba8eceefc --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_TIRE_PRESSURE_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_TIRE_PRESSURE_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVITirePressureNotification command class + **/ +class OnVITirePressureNotification : public NotificationFromHMI { + public: + /** + * @brief OnVITirePressureNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVITirePressureNotification(const MessageSharedPtr& message); + + /** + * @brief OnVITirePressureNotification class destructor + **/ + virtual ~OnVITirePressureNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVITirePressureNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_TIRE_PRESSURE_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h new file mode 100644 index 000000000..30ad9d6ac --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h @@ -0,0 +1,74 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_VEHICLE_DATA_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_VEHICLE_DATA_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIVehicleDataNotification command class + * Sent by HMI for the periodic and non periodic vehicle data + **/ +class OnVIVehicleDataNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIVehicleDataNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIVehicleDataNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIVehicleDataNotification class destructor + **/ + virtual ~OnVIVehicleDataNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIVehicleDataNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_VEHICLE_DATA_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vin_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vin_notification.h new file mode 100644 index 000000000..0cb5fb17d --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vin_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_VIN_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_VIN_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIVinNotification command class + **/ +class OnVIVinNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIVinNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIVinNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIVinNotification class destructor + **/ + virtual ~OnVIVinNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIVinNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_VIN_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h new file mode 100644 index 000000000..c7a1a6bd6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_WIPER_STATUS_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_WIPER_STATUS_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVIWiperStatusNotification command class + **/ +class OnVIWiperStatusNotification : public NotificationFromHMI { + public: + /** + * @brief OnVIWiperStatusNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVIWiperStatusNotification(const MessageSharedPtr& message); + + /** + * @brief OnVIWiperStatusNotification class destructor + **/ + virtual ~OnVIWiperStatusNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVIWiperStatusNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_WIPER_STATUS_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_command_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_command_notification.h new file mode 100644 index 000000000..677bc2672 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_command_notification.h @@ -0,0 +1,74 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_COMMAND_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_COMMAND_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVRCommandNotification command class + **/ +class OnVRCommandNotification : public NotificationFromHMI { + public: + /** + * @brief OnVRCommandNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVRCommandNotification(const MessageSharedPtr& message); + + /** + * @brief OnVRCommandNotification class destructor + **/ + virtual ~OnVRCommandNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + + DISALLOW_COPY_AND_ASSIGN(OnVRCommandNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_COMMAND_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_language_change_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_language_change_notification.h new file mode 100644 index 000000000..24c60c32d --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_language_change_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_LANGUAGE_CHANGE_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_LANGUAGE_CHANGE_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVRLanguageChangeNotification command class + **/ +class OnVRLanguageChangeNotification : public NotificationFromHMI { + public: + /** + * @brief OnVRLanguageChangeNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVRLanguageChangeNotification(const MessageSharedPtr& message); + + /** + * @brief OnVRLanguageChangeNotification class destructor + **/ + virtual ~OnVRLanguageChangeNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVRLanguageChangeNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_LANGUAGE_CHANGE_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_started_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_started_notification.h new file mode 100644 index 000000000..cc78f010b --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_started_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_STARTED_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_STARTED_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVRStartedNotification command class + **/ +class OnVRStartedNotification : public NotificationFromHMI { + public: + /** + * @brief OnVRStartedNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVRStartedNotification(const MessageSharedPtr& message); + + /** + * @brief OnVRStartedNotification class destructor + **/ + virtual ~OnVRStartedNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVRStartedNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_STARTED_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_stopped_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_stopped_notification.h new file mode 100644 index 000000000..2ee8ad429 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_stopped_notification.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_STOPPED_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_STOPPED_NOTIFICATION_H_ + +#include "application_manager/commands/hmi/notification_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVRStoppedNotification command class + **/ +class OnVRStoppedNotification : public NotificationFromHMI { + public: + /** + * @brief OnVRStoppedNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVRStoppedNotification(const MessageSharedPtr& message); + + /** + * @brief OnVRStoppedNotification class destructor + **/ + virtual ~OnVRStoppedNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnVRStoppedNotification); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_STOPPED_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/request_to_hmi.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/request_to_hmi.h new file mode 100644 index 000000000..e1149773b --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/request_to_hmi.h @@ -0,0 +1,75 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_REQUEST_TO_HMI_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_REQUEST_TO_HMI_H_ + +#include "application_manager/commands/command_impl.h" + +namespace application_manager { + +namespace commands { + + +class RequestToHMI : public CommandImpl { + public: + explicit RequestToHMI(const MessageSharedPtr& message); + virtual ~RequestToHMI(); + virtual bool Init(); + virtual bool CleanUp(); + virtual void Run(); + void SendRequest(); + + /* + * @brief Retrieves correlation ID + */ + inline int32_t correlation_id() const; + + /* + * @brief Retrieves application ID + */ + inline uint32_t application_id() const; + private: + DISALLOW_COPY_AND_ASSIGN(RequestToHMI); +}; +int32_t RequestToHMI::correlation_id() const { + return (*message_)[strings::params][strings::correlation_id].asInt(); +} +uint32_t RequestToHMI::application_id() const { + return (*message_)[strings::msg_params][strings::app_id].asUInt(); +} + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_REQUEST_TO_HMI_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/response_from_hmi.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/response_from_hmi.h new file mode 100644 index 000000000..e46583ba1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/response_from_hmi.h @@ -0,0 +1,85 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_RESPONSE_FROM_HMI_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_RESPONSE_FROM_HMI_H_ + +#include "application_manager/commands/command_impl.h" +#include "interfaces/HMI_API.h" + +namespace NsSmartDeviceLink { +namespace NsSmartObjects { +class SmartObject; +} +} + +namespace application_manager { + +namespace commands { + +namespace NsSmart = NsSmartDeviceLink::NsSmartObjects; + +class ResponseFromHMI : public CommandImpl { + public: + explicit ResponseFromHMI(const MessageSharedPtr& message); + virtual ~ResponseFromHMI(); + virtual bool Init(); + virtual bool CleanUp(); + virtual void Run(); + void SendResponseToMobile(const MessageSharedPtr& message); + + /* + * @brief Creates HMI request + * + * @param function_id HMI request ID + * @param msg_params HMI request msg params + */ + void CreateHMIRequest(const hmi_apis::FunctionID::eType& function_id, + const NsSmart::SmartObject& msg_params) const; + + /* + * @brief Retrieves correlation ID + */ + inline int32_t correlation_id() const; + private: + DISALLOW_COPY_AND_ASSIGN(ResponseFromHMI); +}; + +int32_t ResponseFromHMI::correlation_id() const { + return (*message_)[strings::params][strings::correlation_id].asInt(); +} + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_RESPONSE_FROM_HMI_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_request.h new file mode 100644 index 000000000..a587af950 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_CHANGE_REGISTRATION_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_CHANGE_REGISTRATION_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSChangeRegistrationRequest command class + **/ +class TTSChangeRegistrationRequest : public RequestToHMI { + public: + /** + * @brief TTSChangeRegistrationRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSChangeRegistrationRequest(const MessageSharedPtr& message); + + /** + * @brief TTSChangeRegistrationRequest class destructor + **/ + virtual ~TTSChangeRegistrationRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSChangeRegistrationRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_CHANGE_REGISTRATION_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_response.h new file mode 100644 index 000000000..3a9e9fda5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_CHANGE_REGISTRATION_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_CHANGE_REGISTRATION_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSChangeRegistratioResponse command class + **/ +class TTSChangeRegistratioResponse : public ResponseFromHMI { + public: + /** + * @brief TTSChangeRegistratioResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSChangeRegistratioResponse(const MessageSharedPtr& message); + + /** + * @brief TTSChangeRegistratioResponse class destructor + **/ + virtual ~TTSChangeRegistratioResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSChangeRegistratioResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_CHANGE_REGISTRATION_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_request.h new file mode 100644 index 000000000..73edd9de7 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_CAPABILITIES_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_CAPABILITIES_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSGetCapabilitiesRequest command class + **/ +class TTSGetCapabilitiesRequest : public RequestToHMI { + public: + /** + * @brief TTSGetCapabilitiesRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSGetCapabilitiesRequest(const MessageSharedPtr& message); + + /** + * @brief TTSGetCapabilitiesRequest class destructor + **/ + virtual ~TTSGetCapabilitiesRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSGetCapabilitiesRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_CAPABILITIES_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_response.h new file mode 100644 index 000000000..71f85d68e --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_CAPABILITIES_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_CAPABILITIES_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSGetCapabilitiesResponse command class + **/ +class TTSGetCapabilitiesResponse : public ResponseFromHMI { + public: + /** + * @brief TTSGetCapabilitiesResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSGetCapabilitiesResponse(const MessageSharedPtr& message); + + /** + * @brief TTSGetCapabilitiesResponse class destructor + **/ + virtual ~TTSGetCapabilitiesResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSGetCapabilitiesResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_CAPABILITIES_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_request.h new file mode 100644 index 000000000..94e38ec47 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_LANGUAGE_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_LANGUAGE_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSGetLanguageRequest command class + **/ +class TTSGetLanguageRequest : public RequestToHMI { + public: + /** + * @brief TTSGetLanguageRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSGetLanguageRequest(const MessageSharedPtr& message); + + /** + * @brief TTSGetLanguageRequest class destructor + **/ + virtual ~TTSGetLanguageRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSGetLanguageRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_LANGUAGE_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_response.h new file mode 100644 index 000000000..bd67d64f3 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_LANGUAGE_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_LANGUAGE_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSGetLanguageResponse command class + **/ +class TTSGetLanguageResponse : public ResponseFromHMI { + public: + /** + * @brief TTSGetLanguageResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSGetLanguageResponse(const MessageSharedPtr& message); + + /** + * @brief TTSGetLanguageResponse class destructor + **/ + virtual ~TTSGetLanguageResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSGetLanguageResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_LANGUAGE_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_request.h new file mode 100644 index 000000000..ff80dd238 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_SUPPORTED_LANGUAGES_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_SUPPORTED_LANGUAGES_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSGetSupportedLanguagesRequest command class + **/ +class TTSGetSupportedLanguagesRequest : public RequestToHMI { + public: + /** + * @brief TTSGetSupportedLanguagesRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSGetSupportedLanguagesRequest(const MessageSharedPtr& message); + + /** + * @brief TTSGetSupportedLanguagesRequest class destructor + **/ + virtual ~TTSGetSupportedLanguagesRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSGetSupportedLanguagesRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_SUPPORTED_LANGUAGES_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_response.h new file mode 100644 index 000000000..244f22346 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_SUPPORTED_LANGUAGES_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_SUPPORTED_LANGUAGES_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSGetSupportedLanguagesResponse command class + **/ +class TTSGetSupportedLanguagesResponse : public ResponseFromHMI { + public: + /** + * @brief TTSGetSupportedLanguagesResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSGetSupportedLanguagesResponse(const MessageSharedPtr& message); + + /** + * @brief TTSGetSupportedLanguagesResponse class destructor + **/ + virtual ~TTSGetSupportedLanguagesResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSGetSupportedLanguagesResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_SUPPORTED_LANGUAGES_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_request.h new file mode 100644 index 000000000..dc58d852e --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_IS_READY_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_IS_READY_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSIsReadyRequest command class + **/ +class TTSIsReadyRequest : public RequestToHMI { + public: + /** + * @brief TTSIsReadyRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSIsReadyRequest(const MessageSharedPtr& message); + + /** + * @brief TTSIsReadyRequest class destructor + **/ + virtual ~TTSIsReadyRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSIsReadyRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_IS_READY_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_response.h new file mode 100644 index 000000000..375e5a5d1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_IS_READY_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_IS_READY_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSIsReadyResponse command class + **/ +class TTSIsReadyResponse : public ResponseFromHMI { + public: + /** + * @brief TTSIsReadyResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSIsReadyResponse(const MessageSharedPtr& message); + + /** + * @brief TTSIsReadyResponse class destructor + **/ + virtual ~TTSIsReadyResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSIsReadyResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_IS_READY_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_perform_interaction_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_perform_interaction_request.h new file mode 100644 index 000000000..04057a3d0 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_perform_interaction_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_PERFORM_INTERACTION_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_PERFORM_INTERACTION_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSPerformInteractionRequest command class + **/ +class TTSPerformInteractionRequest : public RequestToHMI { + public: + /** + * @brief TTSPerformInteractionRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSPerformInteractionRequest(const MessageSharedPtr& message); + + /** + * @brief TTSPerformInteractionRequest class destructor + **/ + virtual ~TTSPerformInteractionRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSPerformInteractionRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_PERFORM_INTERACTION_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_perform_interaction_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_perform_interaction_response.h new file mode 100644 index 000000000..08ec53bd5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_perform_interaction_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_PERFORM_INTERACTION_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_PERFORM_INTERACTION_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSPerformInteractionResponse command class + **/ +class TTSPerformInteractionResponse : public ResponseFromHMI { + public: + /** + * @brief TTSPerformInteractionResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSPerformInteractionResponse(const MessageSharedPtr& message); + + /** + * @brief TTSPerformInteractionResponse class destructor + **/ + virtual ~TTSPerformInteractionResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSPerformInteractionResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_PERFORM_INTERACTION_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_request.h new file mode 100644 index 000000000..b398e0b2d --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SET_GLOBAL_PROPERTIES_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SET_GLOBAL_PROPERTIES_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSSetGlobalPropertiesRequest command class + **/ +class TTSSetGlobalPropertiesRequest : public RequestToHMI { + public: + /** + * @brief TTSSetGlobalPropertiesRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSSetGlobalPropertiesRequest(const MessageSharedPtr& message); + + /** + * @brief TTSSetGlobalPropertiesRequest class destructor + **/ + virtual ~TTSSetGlobalPropertiesRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSSetGlobalPropertiesRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SET_GLOBAL_PROPERTIES_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_response.h new file mode 100644 index 000000000..adf0b7027 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SET_GLOBAL_PROPERTIES_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SET_GLOBAL_PROPERTIES_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSSetGlobalPropertiesResponse command class + **/ +class TTSSetGlobalPropertiesResponse : public ResponseFromHMI { + public: + /** + * @brief TTSSetGlobalPropertiesResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSSetGlobalPropertiesResponse(const MessageSharedPtr& message); + + /** + * @brief TTSSetGlobalPropertiesResponse class destructor + **/ + virtual ~TTSSetGlobalPropertiesResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSSetGlobalPropertiesResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SET_GLOBAL_PROPERTIES_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_request.h new file mode 100644 index 000000000..326c638f4 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_request.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SPEAK_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SPEAK_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSSpeakRequest command class + **/ +class TTSSpeakRequest + : public RequestToHMI { + public: + /** + * @brief TTSSpeakRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSSpeakRequest(const MessageSharedPtr& message); + + /** + * @brief TTSSpeakRequest class destructor + **/ + virtual ~TTSSpeakRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSSpeakRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SPEAK_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_response.h new file mode 100644 index 000000000..e22c54987 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_response.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SPEAK_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SPEAK_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSSpeakResponse command class + **/ +class TTSSpeakResponse + : public ResponseFromHMI { + public: + /** + * @brief TTSSpeakResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSSpeakResponse(const MessageSharedPtr& message); + + /** + * @brief TTSSpeakResponse class destructor + **/ + virtual ~TTSSpeakResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSSpeakResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SPEAK_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_request.h new file mode 100644 index 000000000..0d82121fd --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_STOP_SPEAKING_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_STOP_SPEAKING_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSStopSpeakingRequest command class + **/ +class TTSStopSpeakingRequest : public RequestToHMI { + public: + /** + * @brief TTSStopSpeakingRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSStopSpeakingRequest(const MessageSharedPtr& message); + + /** + * @brief TTSStopSpeakingRequest class destructor + **/ + virtual ~TTSStopSpeakingRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSStopSpeakingRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_STOP_SPEAKING_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_response.h new file mode 100644 index 000000000..b9055bfbe --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_STOP_SPEAKING_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_STOP_SPEAKING_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief TTSStopSpeakingResponse command class + **/ +class TTSStopSpeakingResponse : public ResponseFromHMI { + public: + /** + * @brief TTSStopSpeakingResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit TTSStopSpeakingResponse(const MessageSharedPtr& message); + + /** + * @brief TTSStopSpeakingResponse class destructor + **/ + virtual ~TTSStopSpeakingResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(TTSStopSpeakingResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_STOP_SPEAKING_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_request.h new file mode 100644 index 000000000..ffd6eeeef --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_COMMAND_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_COMMAND_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIAddCommandRequest command class + **/ +class UIAddCommandRequest : public RequestToHMI { + public: + /** + * @brief UIAddCommandRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIAddCommandRequest(const MessageSharedPtr& message); + + /** + * @brief UIAddCommandRequest class destructor + **/ + virtual ~UIAddCommandRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIAddCommandRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_COMMAND_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_response.h new file mode 100644 index 000000000..f84b71d0f --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_COMMAND_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_COMMAND_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIAddCommandResponse command class + **/ +class UIAddCommandResponse : public ResponseFromHMI { + public: + /** + * @brief UIAddCommandResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIAddCommandResponse(const MessageSharedPtr& message); + + /** + * @brief UIAddCommandResponse class destructor + **/ + virtual ~UIAddCommandResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIAddCommandResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_COMMAND_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_request.h new file mode 100644 index 000000000..1227de046 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_SUBMENU_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_SUBMENU_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIAddSubmenuRequest command class + **/ +class UIAddSubmenuRequest : public RequestToHMI { + public: + /** + * @brief UIAddSubmenuRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIAddSubmenuRequest(const MessageSharedPtr& message); + + /** + * @brief UIAddSubmenuRequest class destructor + **/ + virtual ~UIAddSubmenuRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIAddSubmenuRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_SUBMENU_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_response.h new file mode 100644 index 000000000..1b3a10729 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_SUBMENU_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_SUBMENU_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIAddSubmenuResponse command class + **/ +class UIAddSubmenuResponse : public ResponseFromHMI { + public: + /** + * @brief UIAddSubmenuResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIAddSubmenuResponse(const MessageSharedPtr& message); + + /** + * @brief UIAddSubmenuResponse class destructor + **/ + virtual ~UIAddSubmenuResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIAddSubmenuResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_SUBMENU_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_request.h new file mode 100644 index 000000000..7395eb19e --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ALERT_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ALERT_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIAlertRequest command class + **/ +class UIAlertRequest : public RequestToHMI { + public: + /** + * @brief UIAlertRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIAlertRequest(const MessageSharedPtr& message); + + /** + * @brief UIAlertRequest class destructor + **/ + virtual ~UIAlertRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIAlertRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ALERT_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_response.h new file mode 100644 index 000000000..1d17d9809 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ALERT_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ALERT_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIAlertResponse command class + **/ +class UIAlertResponse : public ResponseFromHMI { + public: + /** + * @brief UIAlertResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIAlertResponse(const MessageSharedPtr& message); + + /** + * @brief UIAlertResponse class destructor + **/ + virtual ~UIAlertResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIAlertResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ALERT_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_request.h new file mode 100644 index 000000000..51276b7b0 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_CHANGE_REGISTRATION_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_CHANGE_REGISTRATION_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIChangeRegistrationRequest command class + **/ +class UIChangeRegistrationRequest : public RequestToHMI { + public: + /** + * @brief UIChangeRegistrationRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIChangeRegistrationRequest(const MessageSharedPtr& message); + + /** + * @brief UIChangeRegistrationRequest class destructor + **/ + virtual ~UIChangeRegistrationRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIChangeRegistrationRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_CHANGE_REGISTRATION_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_response.h new file mode 100644 index 000000000..edb7574e8 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_CHANGE_REGISTRATION_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_CHANGE_REGISTRATION_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIChangeRegistratioResponse command class + **/ +class UIChangeRegistratioResponse : public ResponseFromHMI { + public: + /** + * @brief UIChangeRegistratioResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIChangeRegistratioResponse(const MessageSharedPtr& message); + + /** + * @brief UIChangeRegistratioResponse class destructor + **/ + virtual ~UIChangeRegistratioResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIChangeRegistratioResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_CHANGE_REGISTRATION_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_request.h new file mode 100644 index 000000000..398f78c28 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_COMMAND_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_COMMAND_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIDeleteCommandRequest command class + **/ +class UIDeleteCommandRequest : public RequestToHMI { + public: + /** + * @brief UIDeleteCommandRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIDeleteCommandRequest(const MessageSharedPtr& message); + + /** + * @brief UIDeleteCommandRequest class destructor + **/ + virtual ~UIDeleteCommandRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIDeleteCommandRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_COMMAND_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_response.h new file mode 100644 index 000000000..bb1981190 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_COMMAND_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_COMMAND_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIDeleteCommandResponse command class + **/ +class UIDeleteCommandResponse : public ResponseFromHMI { + public: + /** + * @brief UIDeleteCommandResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIDeleteCommandResponse(const MessageSharedPtr& message); + + /** + * @brief UIDeleteCommandResponse class destructor + **/ + virtual ~UIDeleteCommandResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIDeleteCommandResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_COMMAND_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_request.h new file mode 100644 index 000000000..1b3747234 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_SUBMENU_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_SUBMENU_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIAddSubmenuRequest command class + **/ +class UIDeleteSubmenuRequest : public RequestToHMI { + public: + /** + * @brief UIDeleteSubmenuRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIDeleteSubmenuRequest(const MessageSharedPtr& message); + + /** + * @brief UIDeleteSubmenuRequest class destructor + **/ + virtual ~UIDeleteSubmenuRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIDeleteSubmenuRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_SUBMENU_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_response.h new file mode 100644 index 000000000..8bbab9946 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_SUBMENU_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_SUBMENU_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIDeleteSubmenuResponse command class + **/ +class UIDeleteSubmenuResponse : public ResponseFromHMI { + public: + /** + * @brief UIDeleteSubmenuResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIDeleteSubmenuResponse(const MessageSharedPtr& message); + + /** + * @brief UIDeleteSubmenuResponse class destructor + **/ + virtual ~UIDeleteSubmenuResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIDeleteSubmenuResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_SUBMENU_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h new file mode 100644 index 000000000..9e8e11c1a --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_END_AUDIO_PASS_THRU_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_END_AUDIO_PASS_THRU_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIEndAudioPassThruRequest command class + * When this request is invoked, the audio capture stops + **/ +class UIEndAudioPassThruRequest : public RequestToHMI { + public: + /** + * @brief UIEndAudioPassThruRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIEndAudioPassThruRequest(const MessageSharedPtr& message); + + /** + * @brief UIEndAudioPassThruRequest class destructor + **/ + virtual ~UIEndAudioPassThruRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIEndAudioPassThruRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_END_AUDIO_PASS_THRU_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h new file mode 100644 index 000000000..740fc5501 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_END_AUDIO_PASS_THRU_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_END_AUDIO_PASS_THRU_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIEndAudioPassThruResponse command class + **/ +class UIEndAudioPassThruResponse : public ResponseFromHMI { + public: + /** + * @brief UIEndAudioPassThruResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIEndAudioPassThruResponse(const MessageSharedPtr& message); + + /** + * @brief UIEndAudioPassThruResponse class destructor + **/ + virtual ~UIEndAudioPassThruResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIEndAudioPassThruResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_END_AUDIO_PASS_THRU_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_request.h new file mode 100644 index 000000000..2d0469d6a --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_CAPABILITIES_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_CAPABILITIES_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIGetCapabilitiesRequest command class + **/ +class UIGetCapabilitiesRequest : public RequestToHMI { + public: + /** + * @brief UIGetCapabilitiesRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIGetCapabilitiesRequest(const MessageSharedPtr& message); + + /** + * @brief UIGetCapabilitiesRequest class destructor + **/ + virtual ~UIGetCapabilitiesRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIGetCapabilitiesRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_CAPABILITIES_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_response.h new file mode 100644 index 000000000..dc6052e04 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_CAPABILITIES_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_CAPABILITIES_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIGetCapabilitiesResponse command class + **/ +class UIGetCapabilitiesResponse : public ResponseFromHMI { + public: + /** + * @brief UIGetCapabilitiesResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIGetCapabilitiesResponse(const MessageSharedPtr& message); + + /** + * @brief UIGetCapabilitiesResponse class destructor + **/ + virtual ~UIGetCapabilitiesResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIGetCapabilitiesResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_CAPABILITIES_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_request.h new file mode 100644 index 000000000..4fca4826b --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_LANGUAGE_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_LANGUAGE_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIGetLanguageRequest command class + **/ +class UIGetLanguageRequest : public RequestToHMI { + public: + /** + * @brief UIGetLanguageRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIGetLanguageRequest(const MessageSharedPtr& message); + + /** + * @brief UIGetLanguageRequest class destructor + **/ + virtual ~UIGetLanguageRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIGetLanguageRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_LANGUAGE_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_response.h new file mode 100644 index 000000000..ea43e3856 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_LANGUAGE_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_LANGUAGE_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIGetLanguageResponse command class + **/ +class UIGetLanguageResponse : public ResponseFromHMI { + public: + /** + * @brief UIGetLanguageResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIGetLanguageResponse(const MessageSharedPtr& message); + + /** + * @brief UIGetLanguageResponse class destructor + **/ + virtual ~UIGetLanguageResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIGetLanguageResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_LANGUAGE_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_request.h new file mode 100644 index 000000000..cc0e70fea --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_SUPPORTED_LANGUAGES_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_SUPPORTED_LANGUAGES_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIGetSupportedLanguagesRequest command class + **/ +class UIGetSupportedLanguagesRequest : public RequestToHMI { + public: + /** + * @brief UIGetSupportedLanguagesRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIGetSupportedLanguagesRequest(const MessageSharedPtr& message); + + /** + * @brief UIGetSupportedLanguagesRequest class destructor + **/ + virtual ~UIGetSupportedLanguagesRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIGetSupportedLanguagesRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_SUPPORTED_LANGUAGES_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_response.h new file mode 100644 index 000000000..15e400687 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_SUPPORTED_LANGUAGES_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_SUPPORTED_LANGUAGES_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIGetSupportedLanguagesResponse command class + **/ +class UIGetSupportedLanguagesResponse : public ResponseFromHMI { + public: + /** + * @brief UIGetSupportedLanguagesResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIGetSupportedLanguagesResponse(const MessageSharedPtr& message); + + /** + * @brief UIGetSupportedLanguagesResponse class destructor + **/ + virtual ~UIGetSupportedLanguagesResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIGetSupportedLanguagesResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_SUPPORTED_LANGUAGES_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_request.h new file mode 100644 index 000000000..5e2cb7ef9 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_IS_READY_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_IS_READY_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIIsReadyRequest command class + **/ +class UIIsReadyRequest : public RequestToHMI { + public: + /** + * @brief UIIsReadyRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIIsReadyRequest(const MessageSharedPtr& message); + + /** + * @brief UIIsReadyRequest class destructor + **/ + virtual ~UIIsReadyRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIIsReadyRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_IS_READY_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_response.h new file mode 100644 index 000000000..bc7210f2a --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_IS_READY_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_IS_READY_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIIsReadyResponse command class + **/ +class UIIsReadyResponse : public ResponseFromHMI { + public: + /** + * @brief UIIsReadyResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIIsReadyResponse(const MessageSharedPtr& message); + + /** + * @brief UIIsReadyResponse class destructor + **/ + virtual ~UIIsReadyResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIIsReadyResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_IS_READY_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h new file mode 100644 index 000000000..94bc4827a --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_AUDIO_PASS_THRU_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_AUDIO_PASS_THRU_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIPerformAudioPassThruRequest command class + **/ +class UIPerformAudioPassThruRequest : public RequestToHMI { + public: + /** + * @brief UIPerformAudioPassThruRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIPerformAudioPassThruRequest(const MessageSharedPtr& message); + + /** + * @brief UIPerformAudioPassThruRequest class destructor + **/ + virtual ~UIPerformAudioPassThruRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIPerformAudioPassThruRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_AUDIO_PASS_THRU_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h new file mode 100644 index 000000000..04afedfba --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_AUDIO_PASS_THRU_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_AUDIO_PASS_THRU_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIPerformAudioPassThruResponse command class + **/ +class UIPerformAudioPassThruResponse : public ResponseFromHMI { + public: + /** + * @brief UIPerformAudioPassThruResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIPerformAudioPassThruResponse(const MessageSharedPtr& message); + + /** + * @brief UIPerformAudioPassThruResponse class destructor + **/ + virtual ~UIPerformAudioPassThruResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIPerformAudioPassThruResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_AUDIO_PASS_THRU_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_request.h new file mode 100644 index 000000000..0d6313943 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_INTERACTION_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_INTERACTION_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIPerformInteractionRequest command class + **/ +class UIPerformInteractionRequest : public RequestToHMI { + public: + /** + * @brief UIPerformInteractionRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIPerformInteractionRequest(const MessageSharedPtr& message); + + /** + * @brief UIPerformInteractionRequest class destructor + **/ + virtual ~UIPerformInteractionRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIPerformInteractionRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_CREATE_INTERACTION_SET_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_response.h new file mode 100644 index 000000000..32a87c73c --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_INTERACTION_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_INTERACTION_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIPerformInteractionResponse command class + **/ +class UIPerformInteractionResponse : public ResponseFromHMI { + public: + /** + * @brief UIPerformInteractionResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIPerformInteractionResponse(const MessageSharedPtr& message); + + /** + * @brief UIPerformInteractionResponse class destructor + **/ + virtual ~UIPerformInteractionResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIPerformInteractionResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_INTERACTION_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_request.h new file mode 100644 index 000000000..6f23d3b21 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SCROLLABLE_MESSAGE_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SCROLLABLE_MESSAGE_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIScrollableMessageRequest command class + **/ +class UIScrollableMessageRequest : public RequestToHMI { + public: + /** + * @brief UIScrollableMessageRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIScrollableMessageRequest(const MessageSharedPtr& message); + + /** + * @brief UIScrollableMessageRequest class destructor + **/ + virtual ~UIScrollableMessageRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIScrollableMessageRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SCROLLABLE_MESSAGE_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_response.h new file mode 100644 index 000000000..7bf15a051 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SCROLLABLE_MESSAGE_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SCROLLABLE_MESSAGE_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIScrollableMessageResponse command class + **/ +class UIScrollableMessageResponse : public ResponseFromHMI { + public: + /** + * @brief UIScrollableMessageResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIScrollableMessageResponse(const MessageSharedPtr& message); + + /** + * @brief UIScrollableMessageResponse class destructor + **/ + virtual ~UIScrollableMessageResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIScrollableMessageResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SCROLLABLE_MESSAGE_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_request.h new file mode 100644 index 000000000..7e67912f5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_request.h @@ -0,0 +1,71 @@ +/* Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_DISPLAY_LAYOUT_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_DISPLAY_LAYOUT_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UiSetDisplayLayoutRequest command class + **/ +class UiSetDisplayLayoutRequest : public RequestToHMI { + public: + /** + * @brief UiSetDisplayLayoutRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UiSetDisplayLayoutRequest(const MessageSharedPtr& message); + + /** + * @brief UiSetDisplayLayoutRequest class destructor + **/ + virtual ~UiSetDisplayLayoutRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UiSetDisplayLayoutRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_DISPLAY_LAYOUT_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_response.h new file mode 100644 index 000000000..74df2030e --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_DISPLAY_LAYOUT_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_DISPLAY_LAYOUT_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UiSetDisplayLayoutResponse command class + **/ +class UiSetDisplayLayoutResponse : public ResponseFromHMI { + public: + /** + * @brief UiSetDisplayLayoutResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UiSetDisplayLayoutResponse(const MessageSharedPtr& message); + + /** + * @brief UiSetDisplayLayoutResponse class destructor + **/ + virtual ~UiSetDisplayLayoutResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UiSetDisplayLayoutResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_DISPLAY_LAYOUT_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_request.h new file mode 100644 index 000000000..f3f7d0e73 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_GLOBAL_PROPERTIES_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_GLOBAL_PROPERTIES_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UISetGlobalPropertiesRequest command class + **/ +class UISetGlobalPropertiesRequest : public RequestToHMI { + public: + /** + * @brief UISetGlobalPropertiesRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UISetGlobalPropertiesRequest(const MessageSharedPtr& message); + + /** + * @brief UIShowRequest class destructor + **/ + virtual ~UISetGlobalPropertiesRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UISetGlobalPropertiesRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_GLOBAL_PROPERTIES_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_response.h new file mode 100644 index 000000000..bc00397e3 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_GLOBAL_PROPERTIES_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_GLOBAL_PROPERTIES_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UISetGlobalPropertiesResponse command class + **/ +class UISetGlobalPropertiesResponse : public ResponseFromHMI { + public: + /** + * @brief UISetGlobalPropertiesResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UISetGlobalPropertiesResponse(const MessageSharedPtr& message); + + /** + * @brief UISetGlobalPropertiesResponse class destructor + **/ + virtual ~UISetGlobalPropertiesResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UISetGlobalPropertiesResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_GLOBAL_PROPERTIES_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_icon_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_icon_request.h new file mode 100644 index 000000000..1541aada6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_icon_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UISetIconRequest command class + **/ +class UISetIconRequest : public RequestToHMI { + public: + /** + * @brief UISetIconRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UISetIconRequest(const MessageSharedPtr& message); + + /** + * @brief UISetIconRequest class destructor + **/ + virtual ~UISetIconRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UISetIconRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_icon_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_icon_response.h new file mode 100644 index 000000000..f125f6428 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_icon_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UISetIconResponse command class + **/ +class UISetIconResponse : public ResponseFromHMI { + public: + /** + * @brief UISetIconResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UISetIconResponse(const MessageSharedPtr& message); + + /** + * @brief UISetIconResponse class destructor + **/ + virtual ~UISetIconResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UISetIconResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h new file mode 100644 index 000000000..44cbbbfcf --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_MEDIA_CLOCK_TIMER_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_MEDIA_CLOCK_TIMER_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UISetMediaClockTimerRequest command class + **/ +class UISetMediaClockTimerRequest : public RequestToHMI { + public: + /** + * @brief UISetMediaClockTimerRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UISetMediaClockTimerRequest(const MessageSharedPtr& message); + + /** + * @brief UISetMediaClockTimerRequest class destructor + **/ + virtual ~UISetMediaClockTimerRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UISetMediaClockTimerRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_MEDIA_CLOCK_TIMER_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h new file mode 100644 index 000000000..dd46f128d --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_MEDIA_CLOCK_TIMER_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_MEDIA_CLOCK_TIMER_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UISetMediaClockTimerResponse command class + **/ +class UISetMediaClockTimerResponse : public ResponseFromHMI { + public: + /** + * @brief UISetMediaClockTimerResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UISetMediaClockTimerResponse(const MessageSharedPtr& message); + + /** + * @brief UISetMediaClockTimerResponse class destructor + **/ + virtual ~UISetMediaClockTimerResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UISetMediaClockTimerResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_MEDIA_CLOCK_TIMER_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_show_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_show_request.h new file mode 100644 index 000000000..6f22263e6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_show_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SHOW_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SHOW_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIShowRequest command class + **/ +class UIShowRequest : public RequestToHMI { + public: + /** + * @brief UIShowRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIShowRequest(const MessageSharedPtr& message); + + /** + * @brief UIShowRequest class destructor + **/ + virtual ~UIShowRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIShowRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SHOW_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_show_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_show_response.h new file mode 100644 index 000000000..a6391fa6c --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_show_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SHOW_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SHOW_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UIShowResponse command class + **/ +class UIShowResponse : public ResponseFromHMI { + public: + /** + * @brief UIShowResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UIShowResponse(const MessageSharedPtr& message); + + /** + * @brief UIShowResponse class destructor + **/ + virtual ~UIShowResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UIShowResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SHOW_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_request.h new file mode 100644 index 000000000..5cb31b4a9 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SLIDER_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SLIDER_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ButtonGetCapabilitiesRequest command class + **/ +class UISliderRequest : public RequestToHMI { + public: + /** + * @brief UISliderRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UISliderRequest(const MessageSharedPtr& message); + + /** + * @brief UISliderRequest class destructor + **/ + virtual ~UISliderRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UISliderRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SLIDER_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_response.h new file mode 100644 index 000000000..aae5408e2 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SLIDER_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SLIDER_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UISliderResponse command class + **/ +class UISliderResponse : public ResponseFromHMI { + public: + /** + * @brief UISliderResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UISliderResponse(const MessageSharedPtr& message); + + /** + * @brief UISliderResponse class destructor + **/ + virtual ~UISliderResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UISliderResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SLIDER_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_request.h new file mode 100644 index 000000000..51dac16ec --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_APP_LIST_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_APP_LIST_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UpdateAppListRequest command class + **/ +class UpdateAppListRequest : public RequestToHMI { + public: + /** + * @brief UpdateAppListRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UpdateAppListRequest(const MessageSharedPtr& message); + + /** + * @brief UpdateAppListRequest class destructor + **/ + virtual ~UpdateAppListRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UpdateAppListRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_APP_LIST_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_response.h new file mode 100644 index 000000000..7e3f4d1ac --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_APP_LIST_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_APP_LIST_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UpdateAppListResponse command class + **/ +class UpdateAppListResponse : public ResponseFromHMI { + public: + /** + * @brief UpdateAppListResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UpdateAppListResponse(const MessageSharedPtr& message); + + /** + * @brief UpdateAppListResponse class destructor + **/ + virtual ~UpdateAppListResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UpdateAppListResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_APP_LIST_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_request.h new file mode 100644 index 000000000..abf82b26a --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_DEVICE_LIST_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_DEVICE_LIST_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UpdateDeviceListRequest command class + **/ +class UpdateDeviceListRequest : public RequestToHMI { + public: + /** + * @brief UpdateDeviceListRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UpdateDeviceListRequest(const MessageSharedPtr& message); + + /** + * @brief UpdateDeviceListRequest class destructor + **/ + virtual ~UpdateDeviceListRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UpdateDeviceListRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_DEVICE_LIST_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_response.h new file mode 100644 index 000000000..d4191c8be --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UPDATE_DEVICE_LIST_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UPDATE_DEVICE_LIST_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UpdateDeviceListResponse command class + **/ +class UpdateDeviceListResponse : public ResponseFromHMI { + public: + /** + * @brief UpdateDeviceListResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UpdateDeviceListResponse(const MessageSharedPtr& message); + + /** + * @brief UpdateDeviceListResponse class destructor + **/ + virtual ~UpdateDeviceListResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UpdateDeviceListResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UPDATE_DEVICE_LIST_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_request.h new file mode 100644 index 000000000..90e1e145c --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_DIAGNOSTIC_MESSAGE_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_DIAGNOSTIC_MESSAGE_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VIDiagnosticMessageRequest command class + **/ +class VIDiagnosticMessageRequest : public RequestToHMI { + public: + /** + * @brief VIDiagnosticMessageRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIDiagnosticMessageRequest(const MessageSharedPtr& message); + + /** + * @brief VIDiagnosticMessageRequest class destructor + **/ + virtual ~VIDiagnosticMessageRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VIDiagnosticMessageRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_DIAGNOSTIC_MESSAGE_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_response.h new file mode 100644 index 000000000..f332a3281 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_DIAGNOSTIC_MESSAGE_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_DIAGNOSTIC_MESSAGE_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VIDiagnosticMessageResponse command class + **/ +class VIDiagnosticMessageResponse : public ResponseFromHMI { + public: + /** + * @brief VIDiagnosticMessageResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIDiagnosticMessageResponse(const MessageSharedPtr& message); + + /** + * @brief VIDiagnosticMessageResponse class destructor + **/ + virtual ~VIDiagnosticMessageResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VIDiagnosticMessageResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_DIAGNOSTIC_MESSAGE_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_request.h new file mode 100644 index 000000000..93f046d7d --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_DTCS_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_DTCS_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VIGetDTCsRequest command class + **/ +class VIGetDTCsRequest : public RequestToHMI { + public: + /** + * @brief VIGetDTCsRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIGetDTCsRequest(const MessageSharedPtr& message); + + /** + * @brief VIGetDTCsRequest class destructor + **/ + virtual ~VIGetDTCsRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VIGetDTCsRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_DTCS_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_response.h new file mode 100644 index 000000000..9ee7fac44 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_DTCS_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_DTCS_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VIGetDTCsResponse command class + **/ +class VIGetDTCsResponse : public ResponseFromHMI { + public: + /** + * @brief VIGetDTCsResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIGetDTCsResponse(const MessageSharedPtr& message); + + /** + * @brief VIGetDTCsResponse class destructor + **/ + virtual ~VIGetDTCsResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VIGetDTCsResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_DTCS_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h new file mode 100644 index 000000000..9cb964981 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_DATA_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_DATA_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VIGetVehicleDataRequest command class + **/ +class VIGetVehicleDataRequest : public RequestToHMI { + public: + /** + * @brief VIGetVehicleDataRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIGetVehicleDataRequest(const MessageSharedPtr& message); + + /** + * @brief VIGetVehicleDataRequest class destructor + **/ + virtual ~VIGetVehicleDataRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VIGetVehicleDataRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_DATA_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h new file mode 100644 index 000000000..951bf0c33 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef HMI_VI_GETBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_ +#define HMI_VI_GETBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_ + +#include "application_manager/event_engine/event.h" +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { +namespace commands { + +/** + * @brief VIGetVehicleDataRequestTemplate command class + * + * Template class for sending 1 subscribe thin request + **/ +template<event_engine::Event::EventID eventID> +class VIGetVehicleDataRequestTemplate : public RequestToHMI { + public: + /** + * @brief VIGetVehicleDataRequestTemplate class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIGetVehicleDataRequestTemplate(const MessageSharedPtr& message) + : RequestToHMI(message) { + } + + /** + * @brief Execute command with sending DBus thin request to HMI + **/ + virtual void Run() { + LOG4CXX_INFO(logger_, "VIGetVehicleDataRequestTemplate::Run"); + SendRequest(); + } + + private: + DISALLOW_COPY_AND_ASSIGN(VIGetVehicleDataRequestTemplate<eventID>); +}; + +} // namespace commands +} // namespace application_manager +#endif // HMI_VI_GETBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h new file mode 100644 index 000000000..952b0fb4d --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_DATA_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_DATA_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VIGetVehicleDataResponse command class + **/ +class VIGetVehicleDataResponse : public ResponseFromHMI { + public: + /** + * @brief VIGetVehicleDataResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIGetVehicleDataResponse(const MessageSharedPtr& message); + + /** + * @brief VIGetVehicleDataResponse class destructor + **/ + virtual ~VIGetVehicleDataResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VIGetVehicleDataResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_DATA_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h new file mode 100644 index 000000000..ecd465365 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef HMI_VI_GETBSCRIBE_VEHICLE_DATA_REQUEST_RESPONSE_H_ +#define HMI_VI_GETBSCRIBE_VEHICLE_DATA_REQUEST_RESPONSE_H_ + +#include "application_manager/event_engine/event.h" +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { +namespace commands { + +/** + * @brief VIGetVehicleDataResponseTemplate command class + **/ +template<event_engine::Event::EventID eventID> +class VIGetVehicleDataResponseTemplate : public ResponseFromHMI { + public: + /** + * @brief VIGetVehicleDataResponseTemplate class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIGetVehicleDataResponseTemplate(const MessageSharedPtr& message) + : ResponseFromHMI(message) { + } + + /** + * @brief Execute command + **/ + virtual void Run() { + LOG4CXX_INFO(logger_, "VIGetVehicleDataResponseTemplate::Run"); + event_engine::Event event(eventID); + event.set_smart_object(*message_); + event.raise(); + } + + private: + DISALLOW_COPY_AND_ASSIGN(VIGetVehicleDataResponseTemplate<eventID>); +}; + +} // namespace commands +} // namespace application_manager +#endif // HMI_VI_GETBSCRIBE_VEHICLE_DATA_REQUEST_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h new file mode 100644 index 000000000..876f7d2e5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_TYPE_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_TYPE_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VIGetVehicleTypeRequest command class + **/ +class VIGetVehicleTypeRequest : public RequestToHMI { + public: + /** + * @brief VIGetVehicleTypeRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIGetVehicleTypeRequest(const MessageSharedPtr& message); + + /** + * @brief VIGetVehicleTypeRequest class destructor + **/ + virtual ~VIGetVehicleTypeRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VIGetVehicleTypeRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_TYPE_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h new file mode 100644 index 000000000..8b632182f --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_TYPE_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_TYPE_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VIGetVehicleTypeResponse command class + **/ +class VIGetVehicleTypeResponse : public ResponseFromHMI { + public: + /** + * @brief VIGetVehicleTypeResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIGetVehicleTypeResponse(const MessageSharedPtr& message); + + /** + * @brief VIGetVehicleTypeResponse class destructor + **/ + virtual ~VIGetVehicleTypeResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VIGetVehicleTypeResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_TYPE_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_request.h new file mode 100644 index 000000000..e905cf4c0 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_IS_READY_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_IS_READY_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VIIsReadyRequest command class + **/ +class VIIsReadyRequest : public RequestToHMI { + public: + /** + * @brief VIIsReadyRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIIsReadyRequest(const MessageSharedPtr& message); + + /** + * @brief VIIsReadyRequest class destructor + **/ + virtual ~VIIsReadyRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VIIsReadyRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_IS_READY_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_response.h new file mode 100644 index 000000000..e13e368b3 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_IS_READY_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_IS_READY_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VIIsReadyResponse command class + **/ +class VIIsReadyResponse : public ResponseFromHMI { + public: + /** + * @brief VIIsReadyResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIIsReadyResponse(const MessageSharedPtr& message); + + /** + * @brief VIIsReadyResponse class destructor + **/ + virtual ~VIIsReadyResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VIIsReadyResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_IS_READY_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_request.h new file mode 100644 index 000000000..336ad4443 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_READ_DID_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_READ_DID_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VIReadDIDRequest command class + **/ +class VIReadDIDRequest : public RequestToHMI { + public: + /** + * @brief VIReadDIDRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIReadDIDRequest(const MessageSharedPtr& message); + + /** + * @brief VIReadDIDRequest class destructor + **/ + virtual ~VIReadDIDRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VIReadDIDRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_READ_DID_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_response.h new file mode 100644 index 000000000..af6650517 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_READ_DID_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_READ_DID_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VIReadDIDResponse command class + **/ +class VIReadDIDResponse : public ResponseFromHMI { + public: + /** + * @brief VIReadDIDResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIReadDIDResponse(const MessageSharedPtr& message); + + /** + * @brief VIReadDIDResponse class destructor + **/ + virtual ~VIReadDIDResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VIReadDIDResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_READ_DID_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h new file mode 100644 index 000000000..ef14a05f2 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VISubscribeVehicleDataRequest command class + **/ +class VISubscribeVehicleDataRequest : public RequestToHMI { + public: + /** + * @brief VISubscribeVehicleDataRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VISubscribeVehicleDataRequest(const MessageSharedPtr& message); + + /** + * @brief VISubscribeVehicleDataRequest class destructor + **/ + virtual ~VISubscribeVehicleDataRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VISubscribeVehicleDataRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h new file mode 100644 index 000000000..bcfa2f6f1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h @@ -0,0 +1,74 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef HMI_VI_SUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_ +#define HMI_VI_SUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_ + +#include "application_manager/event_engine/event.h" +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { +namespace commands { + +/** + * @brief VISubscriveVehicleDataRequestTemplate command class + * + * Template class for sending 1 subscribe thin request + **/ +template<event_engine::Event::EventID eventID> +class VISubscribeVehicleDataRequestTemplate : public RequestToHMI { + public: + /** + * @brief VISubscriveVehicleDataRequestTemplate class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VISubscribeVehicleDataRequestTemplate( + const MessageSharedPtr& message) + : RequestToHMI(message) { + } + + /** + * @brief Execute command with sending DBus thin request to HMI + **/ + virtual void Run() { + LOG4CXX_INFO(logger_, "VISubscriveVehicleDataRequestTemplate::Run"); + SendRequest(); + } + + private: + DISALLOW_COPY_AND_ASSIGN(VISubscribeVehicleDataRequestTemplate<eventID>); +}; + +} // namespace commands +} // namespace application_manager +#endif // HMI_VI_SUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h new file mode 100644 index 000000000..057fd52e1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VISubscribeVehicleDataResponse command class + **/ +class VISubscribeVehicleDataResponse : public ResponseFromHMI { + public: + /** + * @brief VISubscribeVehicleDataResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VISubscribeVehicleDataResponse(const MessageSharedPtr& message); + + /** + * @brief VISubscribeVehicleDataResponse class destructor + **/ + virtual ~VISubscribeVehicleDataResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VISubscribeVehicleDataResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h new file mode 100644 index 000000000..740d8c386 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef HMI_VI_SUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_ +#define HMI_VI_SUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_ + +#include "application_manager/event_engine/event.h" +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { +namespace commands { +/** + * @brief VISubscriveVehicleDataResponseTemplate command class + **/ +template<event_engine::Event::EventID eventID> +class VISubscribeVehicleDataResponseTemplate : public ResponseFromHMI { + public: + /** + * @brief VISubscriveVehicleDataResponseTemplate class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VISubscribeVehicleDataResponseTemplate( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { + } + + /** + * @brief Execute command + **/ + virtual void Run() { + LOG4CXX_INFO(logger_, "VISubscribeVehicleDataResponse::Run"); + event_engine::Event event(eventID); + event.set_smart_object(*message_); + event.raise(); + } + private: + DISALLOW_COPY_AND_ASSIGN(VISubscribeVehicleDataResponseTemplate<eventID>); +}; + +} // namespace commands +} // namespace application_manager +#endif // HMI_VI_SUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h new file mode 100644 index 000000000..18d118fad --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VIUnsubscribeVehicleDataRequest command class + **/ +class VIUnsubscribeVehicleDataRequest : public RequestToHMI { + public: + /** + * @brief VIUnsubscribeVehicleDataRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIUnsubscribeVehicleDataRequest(const MessageSharedPtr& message); + + /** + * @brief VIUnsubscribeVehicleDataRequest class destructor + **/ + virtual ~VIUnsubscribeVehicleDataRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VIUnsubscribeVehicleDataRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h new file mode 100644 index 000000000..d604d4d53 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h @@ -0,0 +1,74 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_ +#define HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_ + +#include "application_manager/event_engine/event.h" +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { +namespace commands { + +/** + * @brief VIUnsubscriveVehicleDataRequestTemplate command class + * + * Template class for sending 1 unsubscribe thin request + **/ +template<event_engine::Event::EventID eventID> +class VIUnsubscribeVehicleDataRequestTemplate : public RequestToHMI { + public: + /** + * @brief VIUnsubscriveVehicleDataRequestTemplate class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIUnsubscribeVehicleDataRequestTemplate( + const MessageSharedPtr& message) + : RequestToHMI(message) { + } + + /** + * @brief Execute command with sending DBus thin request to HMI + **/ + virtual void Run() { + LOG4CXX_INFO(logger_, "VIUnsubscriveVehicleDataRequestTemplate::Run"); + SendRequest(); + } + + private: + DISALLOW_COPY_AND_ASSIGN(VIUnsubscribeVehicleDataRequestTemplate<eventID>); +}; + +} // namespace commands +} // namespace application_manager +#endif // HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h new file mode 100644 index 000000000..b71b8241f --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VIUnsubscribeVehicleDataResponse command class + **/ +class VIUnsubscribeVehicleDataResponse : public ResponseFromHMI { + public: + /** + * @brief VIUnsubscribeVehicleDataResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIUnsubscribeVehicleDataResponse(const MessageSharedPtr& message); + + /** + * @brief VIUnsubscribeVehicleDataResponse class destructor + **/ + virtual ~VIUnsubscribeVehicleDataResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VIUnsubscribeVehicleDataResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h new file mode 100644 index 000000000..8730cc036 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h @@ -0,0 +1,74 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_ +#define HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_ + +#include "application_manager/event_engine/event.h" +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { +namespace commands { + +/** + * @brief VIUnsubscriveVehicleDataResponseTemplate command class + **/ +template<event_engine::Event::EventID eventID> +class VIUnsubscribeVehicleDataResponseTemplate : public ResponseFromHMI { + public: + /** + * @brief VISubscriveVehicleDataResponseTemplate class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VIUnsubscribeVehicleDataResponseTemplate( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { + } + + /** + * @brief Execute command + **/ + virtual void Run() { + LOG4CXX_INFO(logger_, "VIUnsubscriveVehicleDataResponseTemplate::Run"); + event_engine::Event event(eventID); + event.set_smart_object(*message_); + event.raise(); + } + private: + DISALLOW_COPY_AND_ASSIGN(VIUnsubscribeVehicleDataResponseTemplate<eventID>); +}; + +} // namespace commands +} // namespace application_manager + +#endif // HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_request.h new file mode 100644 index 000000000..3675cfb15 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_ADD_COMMAND_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_ADD_COMMAND_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VRAddCommandRequest command class + **/ +class VRAddCommandRequest : public RequestToHMI { + public: + /** + * @brief VRAddCommandRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VRAddCommandRequest(const MessageSharedPtr& message); + + /** + * @brief VRAddCommandRequest class destructor + **/ + virtual ~VRAddCommandRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VRAddCommandRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_ADD_COMMAND_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_response.h new file mode 100644 index 000000000..328e8a205 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_ADD_COMMAND_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_ADD_COMMAND_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VRAddCommandResponse command class + **/ +class VRAddCommandResponse : public ResponseFromHMI { + public: + /** + * @brief VRAddCommandResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VRAddCommandResponse(const MessageSharedPtr& message); + + /** + * @brief VRAddCommandResponse class destructor + **/ + virtual ~VRAddCommandResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VRAddCommandResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_ADD_COMMAND_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_request.h new file mode 100644 index 000000000..5e69b4c18 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_CHANGE_REGISTRATION_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_CHANGE_REGISTRATION_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VRChangeRegistrationRequest command class + **/ +class VRChangeRegistrationRequest : public RequestToHMI { + public: + /** + * @brief VRChangeRegistrationRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VRChangeRegistrationRequest(const MessageSharedPtr& message); + + /** + * @brief VRChangeRegistrationRequest class destructor + **/ + virtual ~VRChangeRegistrationRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VRChangeRegistrationRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_CHANGE_REGISTRATION_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_response.h new file mode 100644 index 000000000..f79da4459 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_CHANGE_REGISTRATION_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_CHANGE_REGISTRATION_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VRChangeRegistrationResponse command class + **/ +class VRChangeRegistrationResponse : public ResponseFromHMI { + public: + /** + * @brief VRChangeRegistrationResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VRChangeRegistrationResponse(const MessageSharedPtr& message); + + /** + * @brief VRChangeRegistrationResponse class destructor + **/ + virtual ~VRChangeRegistrationResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VRChangeRegistrationResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_CHANGE_REGISTRATION_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_request.h new file mode 100644 index 000000000..b843f498f --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_DELETE_COMMAND_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_DELETE_COMMAND_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VRDeleteCommandRequest command class + **/ +class VRDeleteCommandRequest : public RequestToHMI { + public: + /** + * @brief VRDeleteCommandRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VRDeleteCommandRequest(const MessageSharedPtr& message); + + /** + * @brief VRDeleteCommandRequest class destructor + **/ + virtual ~VRDeleteCommandRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VRDeleteCommandRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_DELETE_COMMAND_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_response.h new file mode 100644 index 000000000..11a681bd5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_DELETE_COMMAND_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_DELETE_COMMAND_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VRDeleteCommandResponse command class + **/ +class VRDeleteCommandResponse : public ResponseFromHMI { + public: + /** + * @brief VRDeleteCommandResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VRDeleteCommandResponse(const MessageSharedPtr& message); + + /** + * @brief VRDeleteCommandResponse class destructor + **/ + virtual ~VRDeleteCommandResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VRDeleteCommandResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_DELETE_COMMAND_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_request.h new file mode 100644 index 000000000..7771bdd14 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_CAPABILITIES_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_CAPABILITIES_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VRGetCapabilitiesRequest command class + **/ +class VRGetCapabilitiesRequest : public RequestToHMI { + public: + /** + * @brief VRGetCapabilitiesRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VRGetCapabilitiesRequest(const MessageSharedPtr& message); + + /** + * @brief VRGetCapabilitiesRequest class destructor + **/ + virtual ~VRGetCapabilitiesRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VRGetCapabilitiesRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_CAPABILITIES_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_response.h new file mode 100644 index 000000000..ced60c9d6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_CAPABILITIES_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_CAPABILITIES_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VRGetCapabilitiesResponse command class + **/ +class VRGetCapabilitiesResponse : public ResponseFromHMI { + public: + /** + * @brief VRGetCapabilitiesResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VRGetCapabilitiesResponse(const MessageSharedPtr& message); + + /** + * @brief VRGetCapabilitiesResponse class destructor + **/ + virtual ~VRGetCapabilitiesResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VRGetCapabilitiesResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_CAPABILITIES_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_request.h new file mode 100644 index 000000000..955355d06 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_LANGUAGE_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_LANGUAGE_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VRGetLanguageRequest command class + **/ +class VRGetLanguageRequest : public RequestToHMI { + public: + /** + * @brief VRGetLanguageRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VRGetLanguageRequest(const MessageSharedPtr& message); + + /** + * @brief VRGetLanguageRequest class destructor + **/ + virtual ~VRGetLanguageRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VRGetLanguageRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_LANGUAGE_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_response.h new file mode 100644 index 000000000..2bd59b8be --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_LANGUAGE_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_LANGUAGE_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VRGetLanguageResponse command class + **/ +class VRGetLanguageResponse : public ResponseFromHMI { + public: + /** + * @brief VRGetLanguageResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VRGetLanguageResponse(const MessageSharedPtr& message); + + /** + * @brief VRGetLanguageResponse class destructor + **/ + virtual ~VRGetLanguageResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VRGetLanguageResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_LANGUAGE_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_request.h new file mode 100644 index 000000000..79105978b --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_SUPPORTED_LANGUAGES_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_SUPPORTED_LANGUAGES_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VRGetSupportedLanguagesRequest command class + **/ +class VRGetSupportedLanguagesRequest : public RequestToHMI { + public: + /** + * @brief VRGetSupportedLanguagesRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VRGetSupportedLanguagesRequest(const MessageSharedPtr& message); + + /** + * @brief VRGetSupportedLanguagesRequest class destructor + **/ + virtual ~VRGetSupportedLanguagesRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VRGetSupportedLanguagesRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_SUPPORTED_LANGUAGES_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_response.h new file mode 100644 index 000000000..38f505622 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_SUPPORTED_LANGUAGES_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_SUPPORTED_LANGUAGES_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VRGetSupportedLanguagesResponse command class + **/ +class VRGetSupportedLanguagesResponse : public ResponseFromHMI { + public: + /** + * @brief VRGetSupportedLanguagesResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VRGetSupportedLanguagesResponse(const MessageSharedPtr& message); + + /** + * @brief VRGetSupportedLanguagesResponse class destructor + **/ + virtual ~VRGetSupportedLanguagesResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VRGetSupportedLanguagesResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_SUPPORTED_LANGUAGES_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_request.h new file mode 100644 index 000000000..ac734638b --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_request.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_IS_READY_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_IS_READY_REQUEST_H_ + +#include "application_manager/commands/hmi/request_to_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VRIsReadyRequest command class + **/ +class VRIsReadyRequest : public RequestToHMI { + public: + /** + * @brief VRIsReadyRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VRIsReadyRequest(const MessageSharedPtr& message); + + /** + * @brief VRIsReadyRequest class destructor + **/ + virtual ~VRIsReadyRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VRIsReadyRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_IS_READY_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_response.h new file mode 100644 index 000000000..4f4f86d84 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_response.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_IS_READY_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_IS_READY_RESPONSE_H_ + +#include "application_manager/commands/hmi/response_from_hmi.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief VRIsReadyResponse command class + **/ +class VRIsReadyResponse : public ResponseFromHMI { + public: + /** + * @brief VRIsReadyResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit VRIsReadyResponse(const MessageSharedPtr& message); + + /** + * @brief VRIsReadyResponse class destructor + **/ + virtual ~VRIsReadyResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(VRIsReadyResponse); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_IS_READY_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_command_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_command_request.h new file mode 100644 index 000000000..bce9d6350 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_command_request.h @@ -0,0 +1,141 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_COMMAND_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_COMMAND_REQUEST_H_ + +#include "application_manager/application.h" +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief AddCommandRequest command class + **/ +class AddCommandRequest : public CommandRequestImpl { + public: + /** + * @brief AddCommandRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AddCommandRequest(const MessageSharedPtr& message); + + /** + * @brief AddCommandRequest class destructor + **/ + virtual ~AddCommandRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + void on_event(const event_engine::Event& event); + + private: + + /* + * @brief Check if command name doesn't exist in application + * Please see SDLAQ-CRS-407 for more information + * + * @param app Mobile application + * + * @return TRUE on success, otherwise FALSE + */ + bool CheckCommandName(ApplicationConstSharedPtr app); + + /* + * @brief Check if command VR synonyms doesn't exist in application commands + * Please see SDLAQ-CRS-407 for more information + * + * @param app Mobile application + * + * @return TRUE on success, otherwise FALSE + */ + bool CheckCommandVRSynonym(ApplicationConstSharedPtr app); + + /* + * @brief Check if command parent ID exists in submenu map + * + * @param app Mobile application + * + * @return TRUE on success, otherwise FALSE + */ + bool CheckCommandParentId(ApplicationConstSharedPtr app); + + /* + * @brief Check if commands has valid syntax + * + * @return TRUE on success, otherwise FALSE + */ + bool CheckVRCommandsNames(); + + /* + * @brief Check if menuNames has valid syntax + * + * @return TRUE on success, otherwise FALSE + */ + bool CheckMenuName(); + + DISALLOW_COPY_AND_ASSIGN(AddCommandRequest); + + /* + * @brief Check if there some not delivered hmi responses exist + * + * @return true if all responses received + */ + bool IsPendingResponseExist(); + + bool is_ui_send_; + bool is_vr_send_; + + bool is_ui_received_; + bool is_vr_received_; + + hmi_apis::Common_Result::eType ui_result_; + hmi_apis::Common_Result::eType vr_result_; +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_COMMAND_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_command_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_command_response.h new file mode 100644 index 000000000..67a49a8e1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_command_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_COMMAND_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_COMMAND_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief AddCommandResponse command class + **/ +class AddCommandResponse : public CommandResponseImpl { + public: + /** + * @brief AddCommandResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AddCommandResponse(const MessageSharedPtr& message); + + /** + * @brief AddCommandResponse class destructor + **/ + virtual ~AddCommandResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(AddCommandResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_COMMAND_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_sub_menu_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_sub_menu_request.h new file mode 100644 index 000000000..befeb76d9 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_sub_menu_request.h @@ -0,0 +1,88 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_SUB_MENU_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_SUB_MENU_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief AddSubMenuRequest command class + **/ +class AddSubMenuRequest : public CommandRequestImpl { + public: + /** + * @brief AddSubMenuRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AddSubMenuRequest(const MessageSharedPtr& message); + + /** + * @brief AddSubMenuRequest class destructor + **/ + virtual ~AddSubMenuRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + void on_event(const event_engine::Event& event); + + private: + + /* + * @brief Check if submenu name is valid + * + * @return TRUE on success, otherwise FALSE + */ + bool CheckSubMenuName(); + + DISALLOW_COPY_AND_ASSIGN(AddSubMenuRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_SUB_MENU_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_sub_menu_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_sub_menu_response.h new file mode 100644 index 000000000..62c404951 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_sub_menu_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_SUB_MENU_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_SUB_MENU_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief AddSubMenuResponse command class + **/ +class AddSubMenuResponse : public CommandResponseImpl { + public: + /** + * @brief AddSubMenuResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AddSubMenuResponse(const MessageSharedPtr& message); + + /** + * @brief AddSubMenuResponse class destructor + **/ + virtual ~AddSubMenuResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(AddSubMenuResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_SUB_MENU_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_maneuver_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_maneuver_request.h new file mode 100644 index 000000000..e932b7244 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_maneuver_request.h @@ -0,0 +1,87 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_MANEUVER_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_MANEUVER_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "application_manager/commands/pending.h" +#include "interfaces/MOBILE_API.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief AlertManeuverRequest command class + **/ +class AlertManeuverRequest : public CommandRequestImpl { + public: + /** + * @brief AlertManeuverRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AlertManeuverRequest(const MessageSharedPtr& message); + + /** + * @brief AlertManeuverRequest class destructor + **/ + virtual ~AlertManeuverRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + virtual void on_event(const event_engine::Event& event); + + private: + mobile_apis::Result::eType result_; + mobile_apis::Result::eType tts_speak_result_code_; + mobile_apis::Result::eType navi_alert_maneuver_result_code_; + Pending pending_requests_; + + DISALLOW_COPY_AND_ASSIGN(AlertManeuverRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_MANEUVER_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_maneuver_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_maneuver_response.h new file mode 100644 index 000000000..5f0827699 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_maneuver_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_MANEUVER_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_MANEUVER_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief AlertManeuverResponse command class + **/ +class AlertManeuverResponse : public CommandResponseImpl { + public: + /** + * @brief AlertManeuverResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AlertManeuverResponse(const MessageSharedPtr& message); + + /** + * @brief AlertManeuverResponse class destructor + **/ + virtual ~AlertManeuverResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(AlertManeuverResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_MANEUVER_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_request.h new file mode 100644 index 000000000..cb693fdd5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_request.h @@ -0,0 +1,129 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "interfaces/MOBILE_API.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief AlertRequest command class + **/ +class AlertRequest : public CommandRequestImpl { + public: + /** + * @brief AlertRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AlertRequest(const MessageSharedPtr& message); + + /** + * @brief AlertRequest class destructor + **/ + virtual ~AlertRequest(); + + /** + * @brief Initialize request params + **/ + virtual bool Init(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + void on_event(const event_engine::Event& event); + + protected: + + private: + /* + * @brief Checks if request parameters are valid + * @param app_id Id of application requested this RPC + * @returns true if request is valid and should be processed + */ + bool Validate(uint32_t app_id); + /* + * @brief Sends UI Alert request + * + * @param app_id Id of application requested this RPC + */ + void SendAlertRequest(int32_t app_id); + + /* + * @brief Sends TTS Speak request + * + * @param app_id Id of application requested this RPC + */ + void SendSpeakRequest(int32_t app_id); + + /* + * @brief Sends Basic communication playtone notification + * + * @param app_id Id of application requested this RPC + */ + void SendPlayToneNotification(int32_t app_id); + + /* + * @brief Tells if there are sent requests without responses + */ + bool HasHmiResponsesToWait(); + + bool awaiting_ui_alert_response_; + bool awaiting_tts_speak_response_; + bool awaiting_tts_stop_speaking_response_; + bool response_success_; + bool flag_other_component_sent_; + mobile_apis::Result::eType response_result_; + smart_objects::SmartObject response_params_; + mobile_apis::Result::eType tts_speak_response_; + + DISALLOW_COPY_AND_ASSIGN(AlertRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_response.h new file mode 100644 index 000000000..59b38933a --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief AlertResponse command class + **/ +class AlertResponse : public CommandResponseImpl { + public: + /** + * @brief AlertResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit AlertResponse(const MessageSharedPtr& message); + + /** + * @brief AlertResponse class destructor + **/ + virtual ~AlertResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(AlertResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h new file mode 100644 index 000000000..3fe97ba1c --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h @@ -0,0 +1,124 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_CHANGE_REGISTRATION_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_CHANGE_REGISTRATION_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "application_manager/commands/pending.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ChangeRegistrationRequest command class + **/ +class ChangeRegistrationRequest : public CommandRequestImpl { + public: + /** + * @brief ChangeRegistrationRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ChangeRegistrationRequest(const MessageSharedPtr& message); + + /** + * @brief ChangeRegistrationRequest class destructor + **/ + virtual ~ChangeRegistrationRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + void on_event(const event_engine::Event& event); + + private: + /* + * @brief Search for requested language in HMI UI supported languages + * + * @return true if language supported by UI, otherwise false + */ + bool IsLanguageSupportedByUI(const int32_t& hmi_display_lang); + + /* + * @brief Search for requested language in HMI VR supported languages + * + * @return true if language supported by VR, otherwise false + */ + bool IsLanguageSupportedByVR(const int32_t& hmi_display_lang); + + /* + * @brief Search for requested language in HMI TTS supported languages + * + * @return true if language supported by TTS, otherwise false + */ + bool IsLanguageSupportedByTTS(const int32_t& hmi_display_lang); + + /* + * @brief Check if there some not delivered hmi responses exist + * + * @return true if all responses received + */ + bool IsPendingResponseExist(); + + /* + * @brief Checks result codes + * + * @return true if one of result codes is success + */ + static bool WasAnySuccess(const hmi_apis::Common_Result::eType ui, + const hmi_apis::Common_Result::eType vr, + const hmi_apis::Common_Result::eType tts); + + Pending pending_requests_; + + hmi_apis::Common_Result::eType ui_result_; + hmi_apis::Common_Result::eType vr_result_; + hmi_apis::Common_Result::eType tts_result_; + + DISALLOW_COPY_AND_ASSIGN(ChangeRegistrationRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_CHANGE_REGISTRATION_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/change_registration_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/change_registration_response.h new file mode 100644 index 000000000..2cac5f2d5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/change_registration_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CHANGE_REGISTRATION_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CHANGE_REGISTRATION_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ChangeRegistrationResponse command class + **/ +class ChangeRegistrationResponse : public CommandResponseImpl { + public: + /** + * @brief ChangeRegistrationResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ChangeRegistrationResponse(const MessageSharedPtr& message); + + /** + * @brief ChangeRegistrationResponse class destructor + **/ + virtual ~ChangeRegistrationResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(ChangeRegistrationResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CHANGE_REGISTRATION_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/create_interaction_choice_set_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/create_interaction_choice_set_request.h new file mode 100644 index 000000000..1eca8d518 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/create_interaction_choice_set_request.h @@ -0,0 +1,163 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CREATE_INTERACTION_CHOICE_SET_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CREATE_INTERACTION_CHOICE_SET_REQUEST_H_ + +#include "application_manager/application.h" +#include "application_manager/commands/command_request_impl.h" +#include "interfaces/MOBILE_API.h" +#include "utils/macro.h" + +namespace application_manager { + +class Application; + +namespace commands { + +/** + * @brief CreateInteractionChoiceSetRequest command class + **/ +class CreateInteractionChoiceSetRequest : public CommandRequestImpl { + public: + /** + * @brief CreateInteractionChoiceSetRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit CreateInteractionChoiceSetRequest(const MessageSharedPtr& message); + + /** + * @brief CreateInteractionChoiceSetRequest class destructor + **/ + virtual ~CreateInteractionChoiceSetRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + + /* + * @brief Checks incoming choiseSet params. + * @param app Registred mobile application + * + * @return Mobile result code + */ + mobile_apis::Result::eType CheckChoiceSet(ApplicationConstSharedPtr app); + + /* + * @brief Predicate for using with CheckChoiceSet method to compare choice ID param + * + * return TRUE if there is coincidence of choice ID, otherwise FALSE + */ + struct CoincidencePredicateChoiceID { + explicit CoincidencePredicateChoiceID(const uint32_t newItem) + :newItem_(newItem) + {}; + + bool operator()(smart_objects::SmartObject obj) { + return obj[strings::choice_id].asInt() == newItem_; + }; + + const uint32_t newItem_; + }; + + /* + * @brief Predicate for using with CheckChoiceSet method to compare menu name param + * + * return TRUE if there is coincidence of menu name, otherwise FALSE + */ + struct CoincidencePredicateMenuName { + explicit CoincidencePredicateMenuName(const std::string& newItem) + :newItem_(newItem) + {}; + + bool operator()(smart_objects::SmartObject obj) { + return obj[strings::menu_name].asString() == newItem_; + }; + + const std::string& newItem_; + }; + + /* + * @brief Predicate for using with CheckChoiceSet method to compare VR commands param + * + * return TRUE if there is coincidence of VR commands, otherwise FALSE + */ + struct CoincidencePredicateVRCommands { + explicit CoincidencePredicateVRCommands(const smart_objects::SmartObject& newItem) + :newItem_(newItem) + {}; + + bool operator()(smart_objects::SmartObject obj) { + return compareStr(obj, newItem_); + }; + + const smart_objects::SmartObject& newItem_; + }; + + /* + * @brief Checks if incoming choice set doesn't has similar VR synonyms. + * + * @param choice1 Choice to compare + * @param choice2 Choice to compare + * + * return Return TRUE if there are similar VR synonyms in choice set, + * otherwise FALSE + */ + bool compareSynonyms( + const NsSmartDeviceLink::NsSmartObjects::SmartObject& choice1, + const NsSmartDeviceLink::NsSmartObjects::SmartObject& choice2); + + /* + * @brief Checks VR synonyms ignoring differences in case. + * + * @param str1 VR synonym to compare + * @param str2 VR synonym to compare + * + * return Return TRUE if there are similar VR synonyms in choice set, + * otherwise FALSE + */ + static bool compareStr( + const NsSmartDeviceLink::NsSmartObjects::SmartObject& str1, + const NsSmartDeviceLink::NsSmartObjects::SmartObject& str2); + + DISALLOW_COPY_AND_ASSIGN(CreateInteractionChoiceSetRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CREATE_INTERACTION_CHOICE_SET_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/create_interaction_choice_set_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/create_interaction_choice_set_response.h new file mode 100644 index 000000000..965573f4a --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/create_interaction_choice_set_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CREATE_INTERACTION_CHOICE_SET_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CREATE_INTERACTION_CHOICE_SET_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief CreateInteractionChoiceSetResponse command class + **/ +class CreateInteractionChoiceSetResponse : public CommandResponseImpl { + public: + /** + * @brief CreateInteractionChoiceSetResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit CreateInteractionChoiceSetResponse(const MessageSharedPtr& message); + + /** + * @brief CreateInteractionChoiceSetResponse class destructor + **/ + virtual ~CreateInteractionChoiceSetResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(CreateInteractionChoiceSetResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CREATE_INTERACTION_CHOICE_SET_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_command_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_command_request.h new file mode 100644 index 000000000..bae0fedd5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_command_request.h @@ -0,0 +1,97 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_COMMAND_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_COMMAND_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief DeleteCommandRequest command class + **/ +class DeleteCommandRequest : public CommandRequestImpl { + public: + /** + * @brief DeleteCommandRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit DeleteCommandRequest(const MessageSharedPtr& message); + + /** + * @brief DeleteCommandRequest class destructor + **/ + virtual ~DeleteCommandRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + void on_event(const event_engine::Event& event); + + private: + + DISALLOW_COPY_AND_ASSIGN(DeleteCommandRequest); + + /* + * @brief Check if there some not delivered hmi responses exist + * + * @return true if all responses received + */ + bool IsPendingResponseExist(); + + bool is_ui_send_; + bool is_vr_send_; + + bool is_ui_received_; + bool is_vr_received_; + + hmi_apis::Common_Result::eType ui_result_; + hmi_apis::Common_Result::eType vr_result_; +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_COMMAND_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_command_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_command_response.h new file mode 100644 index 000000000..0fe0f0959 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_command_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_COMMAND_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_COMMAND_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief DeleteCommandResponse command class + **/ +class DeleteCommandResponse : public CommandResponseImpl { + public: + /** + * @brief DeleteCommandResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit DeleteCommandResponse(const MessageSharedPtr& message); + + /** + * @brief DeleteCommandResponse class destructor + **/ + virtual ~DeleteCommandResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(DeleteCommandResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_COMMAND_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_file_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_file_request.h new file mode 100644 index 000000000..e10671091 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_file_request.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_FILE_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_FILE_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief DeleteFileRequest command class + **/ +class DeleteFileRequest : public CommandRequestImpl { + public: + /** + * @brief DeleteFileRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit DeleteFileRequest(const MessageSharedPtr& message); + + /** + * @brief DeleteFileRequest class destructor + **/ + virtual ~DeleteFileRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(DeleteFileRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_FILE_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_file_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_file_response.h new file mode 100644 index 000000000..cfe6aaa4f --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_file_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_FILE_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_FILE_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief DeleteFileResponse command class + **/ +class DeleteFileResponse : public CommandResponseImpl { + public: + /** + * @brief DeleteFileResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit DeleteFileResponse(const MessageSharedPtr& message); + + /** + * @brief DeleteFileResponse class destructor + **/ + virtual ~DeleteFileResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(DeleteFileResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_FILE_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_interaction_choice_set_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_interaction_choice_set_request.h new file mode 100644 index 000000000..f70594993 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_interaction_choice_set_request.h @@ -0,0 +1,82 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_INTERACTION_CHOICE_SET_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_INTERACTION_CHOICE_SET_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "application_manager/application.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief DeleteInteractionChoiceSetRequest command class + **/ +class DeleteInteractionChoiceSetRequest : public CommandRequestImpl { + public: + /** + * @brief DeleteInteractionChoiceSetRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit DeleteInteractionChoiceSetRequest(const MessageSharedPtr& message); + + /** + * @brief DeleteInteractionChoiceSetRequest class destructor + **/ + virtual ~DeleteInteractionChoiceSetRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + + /* + * @brief Check if requested choice set ID in use by perform interaction + * + * @param app mobile application + */ + bool ChoiceSetInUse(ApplicationConstSharedPtr app); + + DISALLOW_COPY_AND_ASSIGN(DeleteInteractionChoiceSetRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_INTERACTION_CHOICE_SET_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_interaction_choice_set_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_interaction_choice_set_response.h new file mode 100644 index 000000000..1f641e15b --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_interaction_choice_set_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_INTERACTION_CHOICE_SET_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_INTERACTION_CHOICE_SET_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief DeleteInteractionChoiceSetResponse command class + **/ +class DeleteInteractionChoiceSetResponse : public CommandResponseImpl { + public: + /** + * @brief DeleteInteractionChoiceSetResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit DeleteInteractionChoiceSetResponse(const MessageSharedPtr& message); + + /** + * @brief DeleteInteractionChoiceSetResponse class destructor + **/ + virtual ~DeleteInteractionChoiceSetResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(DeleteInteractionChoiceSetResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_INTERACTION_CHOICE_SET_RESPONSE_COMMAND_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_sub_menu_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_sub_menu_request.h new file mode 100644 index 000000000..668721805 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_sub_menu_request.h @@ -0,0 +1,99 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_SUB_MENU_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_SUB_MENU_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "application_manager/application.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief DeleteSubMenuRequest command class + **/ +class DeleteSubMenuRequest : public CommandRequestImpl { + public: + /** + * @brief DeleteSubMenuRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit DeleteSubMenuRequest(const MessageSharedPtr& message); + + /** + * @brief DeleteSubMenuRequest class destructor + **/ + virtual ~DeleteSubMenuRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + /* + * @brief Deletes VR commands from SDL for corresponding submenu ID + * + * @param app_id Application ID + * + * @return TRUE on success, otherwise FALSE + */ + void DeleteSubMenuVRCommands(ApplicationConstSharedPtr app); + + /* + * @brief Deletes UI commands from SDL for corresponding submenu ID + * + * @param app_id Application ID + * + * @return TRUE on success, otherwise FALSE + */ + void DeleteSubMenuUICommands(ApplicationSharedPtr const app); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + void on_event(const event_engine::Event& event); + + DISALLOW_COPY_AND_ASSIGN(DeleteSubMenuRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_SUB_MENU_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_sub_menu_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_sub_menu_response.h new file mode 100644 index 000000000..0bb080e93 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_sub_menu_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_SUB_MENU_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_SUB_MENU_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ResetGlobalPropertiesResponse command class + **/ +class DeleteSubMenuResponse : public CommandResponseImpl { + public: + /** + * @brief DeleteSubMenuResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit DeleteSubMenuResponse(const MessageSharedPtr& message); + + /** + * @brief DeleteSubMenuResponse class destructor + **/ + virtual ~DeleteSubMenuResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(DeleteSubMenuResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_SUB_MENU_RESPONSE_COMMAND_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/diagnostic_message_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/diagnostic_message_request.h new file mode 100644 index 000000000..4cda040b4 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/diagnostic_message_request.h @@ -0,0 +1,80 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAGNOSTIC_MESSAGE_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAGNOSTIC_MESSAGE_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief DiagnosticMessageRequest command class + **/ +class DiagnosticMessageRequest : public CommandRequestImpl { + public: + /** + * @brief DiagnosticMessageRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit DiagnosticMessageRequest(const MessageSharedPtr& message); + + /** + * @brief DiagnosticMessageRequest class destructor + **/ + virtual ~DiagnosticMessageRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + void on_event(const event_engine::Event& event); + + private: + DISALLOW_COPY_AND_ASSIGN(DiagnosticMessageRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAGNOSTIC_MESSAGE_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/diagnostic_message_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/diagnostic_message_response.h new file mode 100644 index 000000000..1b6a6024f --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/diagnostic_message_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAGNOSTIC_MESSAGE_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAGNOSTIC_MESSAGE_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief DiagnosticMessageResponse command class + **/ +class DiagnosticMessageResponse : public CommandResponseImpl { + public: + /** + * @brief DiagnosticMessageResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit DiagnosticMessageResponse(const MessageSharedPtr& message); + + /** + * @brief DiagnosticMessageResponse class destructor + **/ + virtual ~DiagnosticMessageResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(DiagnosticMessageResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAGNOSTIC_MESSAGE_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/dial_number_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/dial_number_request.h new file mode 100644 index 000000000..10ffa5b32 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/dial_number_request.h @@ -0,0 +1,72 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAL_NUMBER_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAL_NUMBER_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief DialNumber request command class + **/ +class DialNumberRequest : public CommandRequestImpl { + public: + /** + * \brief DialNumberRequest class constructor + **/ + explicit DialNumberRequest(const MessageSharedPtr& message); + + /** + * \brief DialNumberRequest class destructor + **/ + virtual ~DialNumberRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(DialNumberRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAL_NUMBER_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/encoded_sync_pdata_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/encoded_sync_pdata_request.h new file mode 100644 index 000000000..daea178cb --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/encoded_sync_pdata_request.h @@ -0,0 +1,76 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ENCODED_SYNC_PDATA_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ENCODED_SYNC_PDATA_REQUEST_H_ + +#include <string> +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief EncodedSyncPData request command class + **/ +class EncodedSyncPDataRequest : public CommandRequestImpl { + public: + /** + * \brief EncodedSyncPDataRequest class constructor + **/ + explicit EncodedSyncPDataRequest(const MessageSharedPtr& message); + + /** + * \brief EncodedSyncPDataRequest class destructor + **/ + virtual ~EncodedSyncPDataRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + static const std::string TEMPORARY_HARDCODED_FILENAME; + static const std::string TEMPORARY_HARDCODED_FOLDERNAME; + + DISALLOW_COPY_AND_ASSIGN(EncodedSyncPDataRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ENCODED_SYNC_PDATA_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/encoded_sync_pdata_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/encoded_sync_pdata_response.h new file mode 100644 index 000000000..e067bd0f0 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/encoded_sync_pdata_response.h @@ -0,0 +1,67 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ENCODED_SYNC_PDATA_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ENCODED_SYNC_PDATA_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "application_manager/message.h" +#include "utils/macro.h" + +namespace application_manager { +namespace commands { + +class EncodedSyncPDataResponse : public CommandResponseImpl { + public: + /** + * \brief EncodedSyncPDataResponse class constructor + **/ + explicit EncodedSyncPDataResponse(const MessageSharedPtr& message); + + /** + * \brief EncodedSyncPDataResponse class destructor + **/ + virtual ~EncodedSyncPDataResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(EncodedSyncPDataResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ENCODED_SYNC_PDATA_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/end_audio_pass_thru_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/end_audio_pass_thru_request.h new file mode 100644 index 000000000..f291f7a74 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/end_audio_pass_thru_request.h @@ -0,0 +1,80 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_END_AUDIO_PASS_THRU_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_END_AUDIO_PASS_THRU_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief EndAudioPassThruRequest command class + **/ +class EndAudioPassThruRequest : public CommandRequestImpl { + public: + /** + * @brief EndAudioPassThruRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit EndAudioPassThruRequest(const MessageSharedPtr& message); + + /** + * @brief EndAudioPassThruRequest class destructor + **/ + virtual ~EndAudioPassThruRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + void on_event(const event_engine::Event& event); + + private: + DISALLOW_COPY_AND_ASSIGN(EndAudioPassThruRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_END_AUDIO_PASS_THRU_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/end_audio_pass_thru_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/end_audio_pass_thru_response.h new file mode 100644 index 000000000..5ad5f85e6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/end_audio_pass_thru_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_END_AUDIO_PASS_THRU_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_END_AUDIO_PASS_THRU_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief EndAudioPassThruResponse command class + **/ +class EndAudioPassThruResponse : public CommandResponseImpl { + public: + /** + * @brief EndAudioPassThruResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit EndAudioPassThruResponse(const MessageSharedPtr& message); + + /** + * @brief EndAudioPassThruResponse class destructor + **/ + virtual ~EndAudioPassThruResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(EndAudioPassThruResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_END_AUDIO_PASS_THRU_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/generic_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/generic_response.h new file mode 100644 index 000000000..c3b39bf91 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/generic_response.h @@ -0,0 +1,70 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GENERIC_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GENERIC_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "application_manager/message.h" +#include "utils/macro.h" + +namespace application_manager { +namespace commands { + +class GenericResponse : public CommandResponseImpl { + public: + /** + * \brief GenericResponse class constructor + **/ + explicit GenericResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { + } + + /** + * \brief GenericResponse class destructor + **/ + virtual ~GenericResponse() { + } + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(GenericResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GENERIC_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_dtcs_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_dtcs_request.h new file mode 100644 index 000000000..d76ac253b --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_dtcs_request.h @@ -0,0 +1,80 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_DTCS_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_DTCS_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief GetDTCsRequest command class + **/ +class GetDTCsRequest : public CommandRequestImpl { + public: + /** + * @brief GetDTCsRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit GetDTCsRequest(const MessageSharedPtr& message); + + /** + * @brief GetDTCsRequest class destructor + **/ + virtual ~GetDTCsRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + void on_event(const event_engine::Event& event); + + private: + DISALLOW_COPY_AND_ASSIGN(GetDTCsRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_DTCS_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_dtcs_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_dtcs_response.h new file mode 100644 index 000000000..69ff1fca5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_dtcs_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_DTCS_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_DTCS_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief GetDTCsResponse command class + **/ +class GetDTCsResponse : public CommandResponseImpl { + public: + /** + * @brief GetDTCsResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit GetDTCsResponse(const MessageSharedPtr& message); + + /** + * @brief GetDTCsResponse class destructor + **/ + virtual ~GetDTCsResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(GetDTCsResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_DTCS_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_vehicle_data_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_vehicle_data_request.h new file mode 100644 index 000000000..9a8f7d334 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_vehicle_data_request.h @@ -0,0 +1,94 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_VEHICLE_DATA_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_VEHICLE_DATA_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +class SmartObject; + +namespace commands { + +/** + * @brief GetVehicleDataRequest command class + **/ +class GetVehicleDataRequest : public CommandRequestImpl { + public: + /** + * @brief GetVehicleDataRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit GetVehicleDataRequest(const MessageSharedPtr& message); + + /** + * @brief GetVehicleDataRequest class destructor + **/ + virtual ~GetVehicleDataRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + + protected: + virtual void on_event(const event_engine::Event& event); + +#ifdef QT_HMI + private: + void SendRequestsToHmi(const int32_t app_id); + + struct HmiRequest { + hmi_apis::Common_Result::eType status; + bool complete; + smart_objects::SmartObject value; + const char* str; + hmi_apis::FunctionID::eType func_id; + }; + + typedef std::vector<HmiRequest> HmiRequests; + HmiRequests hmi_requests_; +#endif // #ifdef QT_HMI + + DISALLOW_COPY_AND_ASSIGN(GetVehicleDataRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_VEHICLE_DATA_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_vehicle_data_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_vehicle_data_response.h new file mode 100644 index 000000000..f0306df6a --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_vehicle_data_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_VEHICLE_DATA_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_VEHICLE_DATA_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief GetVehicleDataResponse command class + **/ +class GetVehicleDataResponse : public CommandResponseImpl { + public: + /** + * @brief GetVehicleDataResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit GetVehicleDataResponse(const MessageSharedPtr& message); + + /** + * @brief GetVehicleDataResponse class destructor + **/ + virtual ~GetVehicleDataResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(GetVehicleDataResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_VEHICLE_DATA_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/list_files_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/list_files_request.h new file mode 100644 index 000000000..86171f1ff --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/list_files_request.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_LIST_FILES_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_LIST_FILES_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ListFilesRequest command class + **/ +class ListFilesRequest : public CommandRequestImpl { + public: + /** + * @brief ListFilesRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ListFilesRequest(const MessageSharedPtr& message); + + /** + * @brief ListFilesRequest class destructor + **/ + virtual ~ListFilesRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(ListFilesRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_LIST_FILES_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/list_files_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/list_files_response.h new file mode 100644 index 000000000..6f8e80bae --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/list_files_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_LIST_FILES_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_LIST_FILES_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ListFilesResponse command class + **/ +class ListFilesResponse : public CommandResponseImpl { + public: + /** + * @brief ListFilesResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ListFilesResponse(const MessageSharedPtr& message); + + /** + * @brief ListFilesResponse class destructor + **/ + virtual ~ListFilesResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(ListFilesResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_LIST_FILES_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_app_interface_unregistered_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_app_interface_unregistered_notification.h new file mode 100644 index 000000000..875366047 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_app_interface_unregistered_notification.h @@ -0,0 +1,74 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_APP_INTERFACE_UNREGISTERED_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_APP_INTERFACE_UNREGISTERED_NOTIFICATION_H_ + +#include "application_manager/commands/command_notification_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnAppInterfaceUnregisteredNotification class + **/ +class OnAppInterfaceUnregisteredNotification : public CommandNotificationImpl { + public: + /** + * @brief OnAppInterfaceUnregisteredNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnAppInterfaceUnregisteredNotification( + const MessageSharedPtr& message); + + /** + * @brief OnAppInterfaceUnregisteredNotification class destructor + **/ + virtual ~OnAppInterfaceUnregisteredNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnAppInterfaceUnregisteredNotification); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_APP_INTERFACE_UNREGISTERED_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_audio_pass_thru_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_audio_pass_thru_notification.h new file mode 100644 index 000000000..67bc31977 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_audio_pass_thru_notification.h @@ -0,0 +1,74 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_AUDIO_PASS_THRU_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_AUDIO_PASS_THRU_NOTIFICATION_H_ + +#include "application_manager/commands/command_notification_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnAudioPassThruNotification class used to send notification with binary data written from + * microphone to mobile device while PerformAudioPassThru is active. + **/ +class OnAudioPassThruNotification : public CommandNotificationImpl { + public: + /** + * @brief OnAudioPassThruNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnAudioPassThruNotification(const MessageSharedPtr& message); + + /** + * @brief OnAudioPassThruNotification class destructor + **/ + virtual ~OnAudioPassThruNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnAudioPassThruNotification); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_AUDIO_PASS_THRU_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_button_event_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_button_event_notification.h new file mode 100644 index 000000000..d1297ba98 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_button_event_notification.h @@ -0,0 +1,86 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_BUTTON_EVENT_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_BUTTON_EVENT_NOTIFICATION_H_ + +#include "application_manager/commands/command_notification_impl.h" +#include "application_manager/application.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +namespace mobile { + +/** + * @brief OnButtonEventNotification class is used to send notification + * to mobile device that some button was pressed on HMI. + **/ +class OnButtonEventNotification : public CommandNotificationImpl { + public: + /** + * @brief OnButtonEventNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnButtonEventNotification(const MessageSharedPtr& message); + + /** + * @brief OnButtonEventNotification class destructor + **/ + virtual ~OnButtonEventNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + /* + * @brief Sends button event notification to mobile device + * + * @param app Application to receive notification + */ + void SendButtonEvent(ApplicationConstSharedPtr app); + + DISALLOW_COPY_AND_ASSIGN(OnButtonEventNotification); +}; + +} // namespace mobile + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_BUTTON_EVENT_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_button_press_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_button_press_notification.h new file mode 100644 index 000000000..0ebdb6d7c --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_button_press_notification.h @@ -0,0 +1,85 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_BUTTON_PRESS_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_BUTTON_PRESS_NOTIFICATION_H_ + +#include "application_manager/commands/command_notification_impl.h" +#include "application_manager/application.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +namespace mobile { + +/** + * @brief OnButtonPressNotification class is used to send notification + * to mobile device that some button was pressed on HMI. + **/ +class OnButtonPressNotification : public CommandNotificationImpl { + public: + /** + * @brief OnButtonPressNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnButtonPressNotification(const MessageSharedPtr& message); + + /** + * @brief OnButtonEventCommand class destructor + **/ + virtual ~OnButtonPressNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + /* + * @brief Sends button press notification to mobile device + * + * @param app Application to receive notification + */ + void SendButtonPress(ApplicationConstSharedPtr app); + + DISALLOW_COPY_AND_ASSIGN(OnButtonPressNotification); +}; + +} // namespace mobile +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_BUTTON_PRESS_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_command_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_command_notification.h new file mode 100644 index 000000000..751b1e7dd --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_command_notification.h @@ -0,0 +1,75 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_COMMAND_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_COMMAND_NOTIFICATION_H_ + +#include "application_manager/commands/command_notification_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +class Application; + +namespace commands { + +/** + * @brief OnCommandNotification class is used to send notification + * to mobile device. + **/ +class OnCommandNotification : public CommandNotificationImpl { + public: + /** + * @brief OnCommandNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnCommandNotification(const MessageSharedPtr& message); + + /** + * @brief OnCommandNotification class destructor + **/ + virtual ~OnCommandNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + private: + DISALLOW_COPY_AND_ASSIGN(OnCommandNotification); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_COMMAND_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_driver_distraction_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_driver_distraction_notification.h new file mode 100644 index 000000000..2f2a3c81f --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_driver_distraction_notification.h @@ -0,0 +1,77 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_DRIVER_DISTRACTION_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_DRIVER_DISTRACTION_NOTIFICATION_H_ + +#include "application_manager/commands/command_notification_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +namespace mobile { + +/** + * @brief OnDriverDistractionNotification class + **/ +class OnDriverDistractionNotification : public CommandNotificationImpl { + public: + /** + * @brief OnDriverDistractionNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnDriverDistractionNotification(const MessageSharedPtr& message); + + /** + * @brief OnDriverDistractionNotification class destructor + **/ + virtual ~OnDriverDistractionNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnDriverDistractionNotification); +}; + +} // namespace mobile + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_DRIVER_DISTRACTION_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_encoded_sync_pdata_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_encoded_sync_pdata_notification.h new file mode 100644 index 000000000..f5e06f661 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_encoded_sync_pdata_notification.h @@ -0,0 +1,90 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_ENCODED_SYNC_PDATA_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_ENCODED_SYNC_PDATA_NOTIFICATION_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/timer_thread.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +class Application; + +/** + * @brief OnEncodedSyncPDataNotification class is used as callback including binary + * data of any SyncP packets that SYNC needs to send back to the mobile device + **/ +class OnEncodedSyncPDataNotification : public CommandResponseImpl { + public: + /** + * @brief OnEncodedSyncPDataNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnEncodedSyncPDataNotification(const MessageSharedPtr& message); + + /** + * @brief OnEncodedSyncPDataNotification class destructor + **/ + virtual ~OnEncodedSyncPDataNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Timer callback function + */ + void onTimer(); + + private: + /* + * @brief Sends sync pdata notification to mobile device + */ + void SendEncodedPData(); + + // members + timer::TimerThread<OnEncodedSyncPDataNotification> timer_; + + DISALLOW_COPY_AND_ASSIGN(OnEncodedSyncPDataNotification); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_ENCODED_SYNC_PDATA_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_hash_change_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_hash_change_notification.h new file mode 100644 index 000000000..be8304786 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_hash_change_notification.h @@ -0,0 +1,75 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HASH_CHANGE_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HASH_CHANGE_NOTIFICATION_H_ + +#include "application_manager/commands/command_notification_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { +namespace mobile { + +/** + * @brief OnHashChangeNotification class + **/ +class OnHashChangeNotification : public CommandNotificationImpl { + public: + /** + * @brief OnHashChangeNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnHashChangeNotification(const MessageSharedPtr& message); + + /** + * @brief OnHashChangeNotification class destructor + **/ + virtual ~OnHashChangeNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnHashChangeNotification); +}; + +} // namespace mobile +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HASH_CHANGE_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification.h new file mode 100644 index 000000000..aefa7f9c2 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HMI_STATUS_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HMI_STATUS_NOTIFICATION_H_ + +#include "application_manager/commands/command_notification_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnHMIStatusNotification class + **/ +class OnHMIStatusNotification : public CommandNotificationImpl { + public: + /** + * @brief OnHMIStatusNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnHMIStatusNotification(const MessageSharedPtr& message); + + /** + * @brief OnHMIStatusNotification class destructor + **/ + virtual ~OnHMIStatusNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnHMIStatusNotification); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HMI_STATUS_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_keyboard_input_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_keyboard_input_notification.h new file mode 100644 index 000000000..e0d6a258e --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_keyboard_input_notification.h @@ -0,0 +1,76 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_ON_KEYBOARD_INPUT_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_ON_KEYBOARD_INPUT_NOTIFICATION_H_ + +#include "application_manager/commands/command_notification_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +namespace mobile { + +/** + * @brief OnKeyBoardInputNotification class + **/ +class OnKeyBoardInputNotification : public CommandNotificationImpl { + public: + /** + * @brief OnKeyBoardInputNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnKeyBoardInputNotification(const MessageSharedPtr& message); + + /** + * @brief OnKeyBoardInputNotification class destructor + **/ + virtual ~OnKeyBoardInputNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnKeyBoardInputNotification); +}; + +} // namespace mobile +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_ON_KEYBOARD_INPUT_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_language_change_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_language_change_notification.h new file mode 100644 index 000000000..d16311489 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_language_change_notification.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_LANGUAGE_CHANGE_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_LANGUAGE_CHANGE_NOTIFICATION_H_ + +#include "application_manager/commands/command_notification_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnLanguageChangeNotification class + **/ +class OnLanguageChangeNotification : public CommandNotificationImpl { + public: + /** + * @brief OnLanguageChangeNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnLanguageChangeNotification(const MessageSharedPtr& message); + + /** + * @brief OnLanguageChangeNotification class destructor + **/ + virtual ~OnLanguageChangeNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnLanguageChangeNotification); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_LANGUAGE_CHANGE_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_permissions_change_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_permissions_change_notification.h new file mode 100644 index 000000000..3cffe8ff4 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_permissions_change_notification.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_PERMISSIONS_CHANGE_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_PERMISSIONS_CHANGE_NOTIFICATION_H_ + +#include "application_manager/commands/command_notification_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnPermissionsChangeNotification class + **/ +class OnPermissionsChangeNotification : public CommandNotificationImpl { + public: + /** + * @brief OnPermissionsChangeNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnPermissionsChangeNotification(const MessageSharedPtr& message); + + /** + * @brief OnPermissionsChangeNotification class destructor + **/ + virtual ~OnPermissionsChangeNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnPermissionsChangeNotification); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_PERMISSIONS_CHANGE_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_sync_pdata_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_sync_pdata_notification.h new file mode 100644 index 000000000..936a68868 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_sync_pdata_notification.h @@ -0,0 +1,91 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_SYNC_PDATA_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_SYNC_PDATA_NOTIFICATION_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/timer_thread.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +class Application; + +/** + * @brief OnSyncPDataNotification class is used as callback including binary + * data of any SyncP packets that SYNC needs to send back to the mobile device + **/ +class OnSyncPDataNotification : public CommandResponseImpl { + public: + /** + * @brief OnSyncPDataNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnSyncPDataNotification(const MessageSharedPtr& message); + + /** + * @brief OnSyncPDataNotification class destructor + **/ + virtual ~OnSyncPDataNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Timer callback function + * + */ + void onTimer(); + + private: + /* + * @brief Sends sync pdata notification to mobile device + */ + void SendPData(); + + // members + timer::TimerThread<OnSyncPDataNotification> timer_; + + DISALLOW_COPY_AND_ASSIGN(OnSyncPDataNotification); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_ENCODED_SYNC_PDATA_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_system_request_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_system_request_notification.h new file mode 100644 index 000000000..183b673af --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_system_request_notification.h @@ -0,0 +1,76 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_SYSTEM_REQUEST_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_SYSTEM_REQUEST_NOTIFICATION_H_ + + +#include "application_manager/commands/command_notification_impl.h" + +namespace application_manager { + +namespace commands { + +namespace mobile { + +/** + * @brief OnSystemRequestNotification class + **/ +class OnSystemRequestNotification : public CommandNotificationImpl { + public: + /** + * @brief OnSystemRequestNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnSystemRequestNotification(const MessageSharedPtr& message); + + /** + * @brief OnSystemRequestNotification class destructor + **/ + virtual ~OnSystemRequestNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnSystemRequestNotification); +}; + +} // namespace mobile +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_SYSTEM_REQUEST_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_tbt_client_state_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_tbt_client_state_notification.h new file mode 100644 index 000000000..5c34caba3 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_tbt_client_state_notification.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_TBT_CLIENT_STATE_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_TBT_CLIENT_STATE_NOTIFICATION_H_ + +#include "application_manager/commands/command_notification_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnTBTClientStateNotification class + **/ +class OnTBTClientStateNotification : public CommandNotificationImpl { + public: + /** + * @brief OnTBTClientStateNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnTBTClientStateNotification(const MessageSharedPtr& message); + + /** + * @brief OnTBTClientStateNotification class destructor + **/ + virtual ~OnTBTClientStateNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnTBTClientStateNotification); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_TBT_CLIENT_STATE_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_touch_event_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_touch_event_notification.h new file mode 100644 index 000000000..1aba3087d --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_touch_event_notification.h @@ -0,0 +1,76 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_ON_TOUCH_EVENT_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_ON_TOUCH_EVENT_NOTIFICATION_H_ + +#include "application_manager/commands/command_notification_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +namespace mobile { + +/** + * @brief OnTouchEventNotification class + **/ +class OnTouchEventNotification : public CommandNotificationImpl { + public: + /** + * @brief OnTouchEventNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnTouchEventNotification(const MessageSharedPtr& message); + + /** + * @brief OnTouchEventNotification class destructor + **/ + virtual ~OnTouchEventNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(OnTouchEventNotification); +}; + +} // namespace mobile +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_ON_TOUCH_EVENT_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_vehicle_data_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_vehicle_data_notification.h new file mode 100644 index 000000000..7e64f1963 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_vehicle_data_notification.h @@ -0,0 +1,82 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_VEHICLE_DATA_NOTIFICATION_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_VEHICLE_DATA_NOTIFICATION_H_ + +#include "application_manager/commands/command_notification_impl.h" +#include "application_manager/application.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief OnVehicleDataNotification class is used to send notification + * to mobile device that some button was pressed on HMI. + **/ +class OnVehicleDataNotification : public CommandNotificationImpl { + public: + /** + * @brief OnVehicleDataNotification class constructor + * + * @param message Incoming SmartObject message + **/ + explicit OnVehicleDataNotification(const MessageSharedPtr& message); + + /** + * @brief OnVehicleDataNotification class destructor + **/ + virtual ~OnVehicleDataNotification(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + /* + * @brief Sends vehicle data notification to mobile device + * + * @param app Application to receive notification + */ + void SendVehicleData(ApplicationConstSharedPtr app); + + DISALLOW_COPY_AND_ASSIGN(OnVehicleDataNotification); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_VEHICLE_DATA_NOTIFICATION_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_audio_pass_thru_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_audio_pass_thru_request.h new file mode 100644 index 000000000..2968497df --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_audio_pass_thru_request.h @@ -0,0 +1,87 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_AUDIO_PASS_THRU_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_AUDIO_PASS_THRU_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief PerformAudioPassThruRequest command class + **/ +class PerformAudioPassThruRequest : public CommandRequestImpl { + public: + /** + * @brief PerformAudioPassThruRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit PerformAudioPassThruRequest(const MessageSharedPtr& message); + + /** + * @brief PerformAudioPassThruRequest class destructor + **/ + virtual ~PerformAudioPassThruRequest(); + + bool Init(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + void on_event(const event_engine::Event& event); + + private: + /* + * @brief Sends TTS Speak request + */ + void SendSpeakRequest(const int32_t app_id); + + DISALLOW_COPY_AND_ASSIGN(PerformAudioPassThruRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_AUDIO_PASS_THRU_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_audio_pass_thru_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_audio_pass_thru_response.h new file mode 100644 index 000000000..d659e59be --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_audio_pass_thru_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_AUDIO_PASS_THRU_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_AUDIO_PASS_THRU_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief PerformAudioPassThruResponse command class + **/ +class PerformAudioPassThruResponse : public CommandResponseImpl { + public: + /** + * @brief PerformAudioPassThruResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit PerformAudioPassThruResponse(const MessageSharedPtr& message); + + /** + * @brief PerformAudioPassThruResponse class destructor + **/ + virtual ~PerformAudioPassThruResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(PerformAudioPassThruResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_AUDIO_PASS_THRU_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_request.h new file mode 100644 index 000000000..652e73f86 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_request.h @@ -0,0 +1,220 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_INTERACTION_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_INTERACTION_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "application_manager/application.h" +#include "utils/timer_thread.h" +#include "utils/macro.h" + +namespace application_manager { + +class Application; + +namespace commands { + +/** + * @brief PerformInteractionRequest command class + **/ +class PerformInteractionRequest : public CommandRequestImpl { + + public: + /** + * @brief PerformInteractionRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit PerformInteractionRequest(const MessageSharedPtr& message); + + /** + * @brief PerformInteractionRequest class destructor + **/ + virtual ~PerformInteractionRequest(); + + /** + * @brief Initialize request params + **/ + virtual bool Init(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + virtual void on_event(const event_engine::Event& event); + + /** + * @brief Timer callback function + * + */ + void onTimer(); + + private: + /* + * @brief Function is called by RequestController when request execution time + * has exceed it's limit + * + */ + virtual void onTimeOut(); + + /* + * @brief Function will be called when VR_OnCommand event + * comes + * + * @param message which should send to mobile side + * + */ + void ProcessVRNotification(const smart_objects::SmartObject& message); + + /* + * @brief Function will be called when event AppUnregistered comes + * + * @param message which will be sent to mobile side + * + */ + void ProcessAppUnregisteredNotification + (const smart_objects::SmartObject& message); + + /* + * @brief Sends VRDeleteCommand request to HMI + * + * @param app_id Application ID + * + */ + void SendVrDeleteCommand(ApplicationSharedPtr app); + + /* + * @brief Sends PerformInteraction response to mobile side + * + * @param message which should send to mobile side + * + */ + void ProcessPerformInteractionResponse + (const smart_objects::SmartObject& message); + + /* + * @brief Sends VR AddCommand request to HMI + * + * @param app_id Application ID + * + */ + void SendVRAddCommandRequest(application_manager::ApplicationSharedPtr const app); + + /* + * @brief Sends UI PerformInteraction request to HMI + * + * @param app_id Application ID + * + */ + void SendUIPerformInteractionRequest( + application_manager::ApplicationSharedPtr const app); + + /* + * @brief Sends TTS PerformInteraction request to HMI + * + * @param app_id Application ID + * + */ + void SendTTSPerformInteractionRequest( + application_manager::ApplicationSharedPtr const app); + + /* + * @brief Prepare request for sending to HMI + * + * @param array of structure of TTS + * + */ + void DeleteParameterFromTTSChunk(smart_objects::SmartObject* array_tts_chunk); + + /* + * @brief Sends UI Show VR help request to HMI + * + * @param app_id Application ID + */ + void SendUIShowVRHelpRequest(ApplicationSharedPtr const app); + + /** + * @brief Creates and Sends Perform interaction to UI. + */ + void CreateUIPerformInteraction(const smart_objects::SmartObject& msg_params, + application_manager::ApplicationSharedPtr const app); + + /* + * @brief Checks if incoming choice set doesn't has similar menu names. + * + * @param app_id Application ID + * + * return Return TRUE if there are no similar menu names in choice set, + * otherwise FALSE + */ + bool CheckChoiceSetMenuNames(application_manager::ApplicationSharedPtr const app); + + /* + * @brief Checks if incoming choice set doesn't has similar VR synonyms. + * + * @param app_id Application ID + * + * return Return TRUE if there are no similar VR synonyms in choice set, + * otherwise FALSE + */ + bool CheckChoiceSetVRSynonyms(application_manager::ApplicationSharedPtr const app); + + /* + * @brief Checks if request with non-sequential positions of vrHelpItems + * SDLAQ-CRS-466 + * + * @param app_id Application ID + * + * @return TRUE if vrHelpItems positions are sequential, + * otherwise FALSE + */ + bool CheckVrHelpItemPositions(application_manager::ApplicationSharedPtr const app); + + // members + timer::TimerThread<PerformInteractionRequest> timer_; + + DISALLOW_COPY_AND_ASSIGN(PerformInteractionRequest); + mobile_apis::Result::eType tts_perform_interaction_code_; +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_INTERACTION_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_response.h new file mode 100644 index 000000000..4ecc149fb --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_INTERACTION_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_INTERACTION_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief PerformInteractionResponse command class + **/ +class PerformInteractionResponse : public CommandResponseImpl { + public: + /** + * @brief PerformInteractionResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit PerformInteractionResponse(const MessageSharedPtr& message); + + /** + * @brief PerformInteractionResponse class destructor + **/ + virtual ~PerformInteractionResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(PerformInteractionResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_INTERACTION_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/put_file_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/put_file_request.h new file mode 100644 index 000000000..3b0309417 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/put_file_request.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PUT_FILE_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PUT_FILE_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief PutFileRequest command class + **/ +class PutFileRequest : public CommandRequestImpl { + public: + /** + * @brief PutFileRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit PutFileRequest(const MessageSharedPtr& message); + + /** + * @brief PutFileRequest class destructor + **/ + virtual ~PutFileRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(PutFileRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PUT_FILE_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/put_file_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/put_file_response.h new file mode 100644 index 000000000..89ff6ad08 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/put_file_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PUT_FILE_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PUT_FILE_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief PutFileResponse command class + **/ +class PutFileResponse : public CommandResponseImpl { + public: + /** + * @brief PutFileResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit PutFileResponse(const MessageSharedPtr& message); + + /** + * @brief PutFileResponse class destructor + **/ + virtual ~PutFileResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(PutFileResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PUT_FILE_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/read_did_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/read_did_request.h new file mode 100644 index 000000000..e2e5dbf3d --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/read_did_request.h @@ -0,0 +1,80 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_READ_DID_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_READ_DID_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ReadDIDRequest command class + **/ +class ReadDIDRequest : public CommandRequestImpl { + public: + /** + * @brief ReadDIDRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ReadDIDRequest(const MessageSharedPtr& message); + + /** + * @brief ReadDIDRequest class destructor + **/ + virtual ~ReadDIDRequest(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + void on_event(const event_engine::Event& event); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(ReadDIDRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_READ_DID_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/read_did_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/read_did_response.h new file mode 100644 index 000000000..80b9b5ea4 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/read_did_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_READ_DID_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_READ_DID_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ReadDIDResponse command class + **/ +class ReadDIDResponse : public CommandResponseImpl { + public: + /** + * @brief ReadDIDResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ReadDIDResponse(const MessageSharedPtr& message); + + /** + * @brief ReadDIDResponse class destructor + **/ + virtual ~ReadDIDResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(ReadDIDResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_READ_DID_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h new file mode 100644 index 000000000..834534234 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h @@ -0,0 +1,183 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_REGISTER_APP_INTERFACE_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_REGISTER_APP_INTERFACE_REQUEST_H_ + +#include <string.h> +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +class Application; + +namespace commands { + +/** + * @brief Register app interface request command class + **/ +class RegisterAppInterfaceRequest : public CommandRequestImpl { + public: + /** + * \brief RegisterAppInterfaceRequest class constructor + **/ + explicit RegisterAppInterfaceRequest(const MessageSharedPtr& message); + + /** + * @brief RegisterAppInterfaceRequest class destructor + **/ + virtual ~RegisterAppInterfaceRequest(); + + /** + * @brief Init required by command resources + **/ + virtual bool Init(); + + /** + * @brief Execute command + **/ + virtual void Run(); + // virtual void cleanUp() = 0; + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + virtual void on_event(const event_engine::Event& event); + + /** + * @brief Sends RegisterAppInterface response to mobile + * + *@param application_impl application + * + **/ + void SendRegisterAppInterfaceResponseToMobile( + mobile_apis::Result::eType result = mobile_apis::Result::SUCCESS); + + private: + /* + * @brief Send addVRcommand request to HMI + * + * @param application_impl application + */ + void SendVrCommandsOnRegisterAppToHMI( + const application_manager::Application& application_impl); + + /* + * @brief Send ttsSpeak request to HMI + * + * @param application_impl application + */ + void SendTTSChunksToHMI( + const application_manager::Application& application_impl); + + /* + * @brief Check new ID along with known mobile application ID + * + * return TRUE if ID is known already, otherwise - FALSE + */ + bool IsApplicationWithSameAppIdRegistered(); + + /* + * @brief Check for some request param. names restrictions, e.g. for + * newline characters + * + * return SUCCESS if param name pass the check, otherwise - error code + * will be returned + */ + mobile_apis::Result::eType CheckRestrictions() const; + + /* + * @brief Removes hidden symbols and spaces + * + * return cleared copy of param name + */ + std::string ClearParamName(std::string param_name) const; + + + /* + * @brief Check new application parameters (name, tts, vr) for + * coincidence with already known parameters of registered applications + * + * return SUCCESS if there is no coincidence of app.name/TTS/VR synonyms, + * otherwise appropriate error code returns + */ + mobile_apis::Result::eType CheckCoincidence(); + + /* + * @brief Predicate for using with CheckCoincidence method to compare with TTS SO + * + * return TRUE if there is coincidence of TTS text field, otherwise FALSE + */ + struct CoincidencePredicateTTS { + explicit CoincidencePredicateTTS(const std::string &newItem) + :newItem_(newItem) + {}; + + bool operator()(smart_objects::SmartObject obj) { + const std::string text = obj[strings::text].asString(); + return !(strcasecmp(text.c_str(), newItem_.c_str())); + }; + + const std::string &newItem_; + }; + + /* + * @brief Predicate for using with CheckCoincidence method to compare with VR synonym SO + * + * return TRUE if there is coincidence of VR, otherwise FALSE + */ + struct CoincidencePredicateVR { + explicit CoincidencePredicateVR(const std::string &newItem) + :newItem_(newItem) + {}; + + bool operator()(smart_objects::SmartObject obj) { + const std::string vr_synonym = obj.asString(); + return !(strcasecmp(vr_synonym.c_str(), newItem_.c_str())); + }; + + const std::string &newItem_; + }; + + + DISALLOW_COPY_AND_ASSIGN(RegisterAppInterfaceRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_REGISTER_APP_INTERFACE_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_response.h new file mode 100644 index 000000000..14b904e63 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_response.h @@ -0,0 +1,72 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_REGISTER_APP_INTERFACE_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_REGISTER_APP_INTERFACE_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { +namespace commands { +/** + * @brief Register app interface request command class + **/ +class RegisterAppInterfaceResponse : public CommandResponseImpl { + public: + /** + * \brief RegisterAppInterfaceResponse class constructor + **/ + explicit RegisterAppInterfaceResponse(const MessageSharedPtr& response) + : CommandResponseImpl(response) { + } + + /** + * \brief RegisterAppInterfaceResponse class destructor + **/ + virtual ~RegisterAppInterfaceResponse() { + } + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(RegisterAppInterfaceResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_REGISTER_APP_INTERFACE_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/reset_global_properties_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/reset_global_properties_request.h new file mode 100644 index 000000000..1c4960f5f --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/reset_global_properties_request.h @@ -0,0 +1,149 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_RESET_GLOBAL_PROPERTIES_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_RESET_GLOBAL_PROPERTIES_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "application_manager/application.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { +// TODO(DK): Include GlobalProperty header +/* + * @brief Names of all global properties that should be unset. + */ +enum GlobalProperty { + HELPPROMT = 0, + TIMEOUTPROMT = 1, + VRHELPTITLE = 2, + VRHELPITEMS = 3 +}; + +/** + * @brief ResetGlobalPropertiesRequest command class + **/ +class ResetGlobalPropertiesRequest : public CommandRequestImpl { + public: + /** + * @brief ResetGlobalPropertiesRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ResetGlobalPropertiesRequest(const MessageSharedPtr& message); + + /** + * @brief ResetGlobalPropertiesRequest class destructor + **/ + virtual ~ResetGlobalPropertiesRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + void on_event(const event_engine::Event& event); + + private: + /* + * @brief Sets default value of the HELPPROMT global property + * to the first vrCommand of each Command Menu registered in application + * + * @param app Registered application + * @param is_timeout_promp Flag indicating that timeout prompt + * should be reset + * + * @return TRUE on success, otherwise FALSE + */ + bool ResetHelpPromt(ApplicationSharedPtr app); + + /* + * @brief Sets default value of the TIMEOUTPROMT global property + * to the first vrCommand of each Command Menu registered in application + * + * @param app Registered application + * + * @return TRUE on success, otherwise FALSE + */ + bool ResetTimeoutPromt(application_manager::ApplicationSharedPtr const app); + + /* + * @brief Sets default value of the VRHELPTITLE global property + * to the application name + * + * @param app Registered application + * + * @return TRUE on success, otherwise FALSE + */ + bool ResetVrHelpTitle(application_manager::ApplicationSharedPtr const app); + + /* + * @brief Sets default value of the VRHELPITEMS global property + * to value equal to registered command -1(default command “Help / Cancel”.) + * + * @param app Registered application + * + * @return TRUE on success, otherwise FALSE + */ + bool ResetVrHelpItems(application_manager::ApplicationSharedPtr const app); + + /* + * @brief Check if there some not delivered hmi responses exist + * + * @return true if all responses received + */ + bool IsPendingResponseExist(); + + DISALLOW_COPY_AND_ASSIGN(ResetGlobalPropertiesRequest); + + bool is_ui_send_; + bool is_tts_send_; + + bool is_ui_received_; + bool is_tts_received_; + + hmi_apis::Common_Result::eType ui_result_; + hmi_apis::Common_Result::eType tts_result_; +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_RESET_GLOBAL_PROPERTIES_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/reset_global_properties_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/reset_global_properties_response.h new file mode 100644 index 000000000..7c0b8eb00 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/reset_global_properties_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_RESET_GLOBAL_PROPERTIES_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_RESET_GLOBAL_PROPERTIES_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ResetGlobalPropertiesResponse command class + **/ +class ResetGlobalPropertiesResponse : public CommandResponseImpl { + public: + /** + * @brief ResetGlobalPropertiesResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ResetGlobalPropertiesResponse(const MessageSharedPtr& message); + + /** + * @brief ResetGlobalPropertiesResponse class destructor + **/ + virtual ~ResetGlobalPropertiesResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(ResetGlobalPropertiesResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_RESET_GLOBAL_PROPERTIES_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_request.h new file mode 100644 index 000000000..bf8bc3eba --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_request.h @@ -0,0 +1,89 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SCROLLABLE_MESSAGE_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SCROLLABLE_MESSAGE_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "interfaces/MOBILE_API.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief scrollable message request command class + **/ +class ScrollabelMessageRequest : public CommandRequestImpl { + public: + /** + * @brief ScrollabeMessageRequest class constructor + **/ + explicit ScrollabelMessageRequest(const MessageSharedPtr& message); + + /** + * @brief SliderCommand class destructor + **/ + virtual ~ScrollabelMessageRequest(); + + /** + * @brief Initialize request params + **/ + virtual bool Init(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + virtual void on_event(const event_engine::Event& event); + + private: + + // members + mobile_apis::Result::eType result_; + + DISALLOW_COPY_AND_ASSIGN(ScrollabelMessageRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SCROLLABLE_MESSAGE_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_response.h new file mode 100644 index 000000000..36fd311ad --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_response.h @@ -0,0 +1,68 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SCROLLABLE_MESSAGE_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SCROLLABLE_MESSAGE_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "application_manager/message.h" +#include "utils/macro.h" + +namespace application_manager { +namespace commands { + +class ScrollableMessageResponse : public CommandResponseImpl { + public: + /** + * \brief ScrollableMessageResponse class constructor + **/ + explicit ScrollableMessageResponse(const MessageSharedPtr& message); + + /** + * \brief SpeakResponseCommand class destructor + **/ + virtual ~ScrollableMessageResponse() { + } + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(ScrollableMessageResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SCROLLABLE_MESSAGE_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_display_layout_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_display_layout_request.h new file mode 100644 index 000000000..925a1cd67 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_display_layout_request.h @@ -0,0 +1,80 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_DISPLAY_LAYOUT_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_DISPLAY_LAYOUT_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief SetDisplayLayoutRequest command class + **/ +class SetDisplayLayoutRequest : public CommandRequestImpl { + public: + /** + * @brief SetDisplayLayoutRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit SetDisplayLayoutRequest(const MessageSharedPtr& message); + + /** + * @brief SetDisplayLayoutRequest class destructor + **/ + virtual ~SetDisplayLayoutRequest(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + **/ + virtual void on_event(const event_engine::Event& event); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(SetDisplayLayoutRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_DISPLAY_LAYOUT_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_display_layout_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_display_layout_response.h new file mode 100644 index 000000000..dbf3de8d8 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_display_layout_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_DISPLAY_LAYOUT_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_DISPLAY_LAYOUT_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief SetDisplayLayoutResponse command class + **/ +class SetDisplayLayoutResponse : public CommandResponseImpl { + public: + /** + * @brief SetDisplayLayoutResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit SetDisplayLayoutResponse(const MessageSharedPtr& message); + + /** + * @brief SetDisplayLayoutResponse class destructor + **/ + virtual ~SetDisplayLayoutResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(SetDisplayLayoutResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_DISPLAY_LAYOUT_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_global_properties_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_global_properties_request.h new file mode 100644 index 000000000..92dbccf06 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_global_properties_request.h @@ -0,0 +1,113 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_GLOBAL_PROPERTIES_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_GLOBAL_PROPERTIES_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief Register app interface request command class + **/ +class SetGlobalPropertiesRequest : public CommandRequestImpl { + public: + /** + * @brief SetGlobalPropertiesRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit SetGlobalPropertiesRequest(const MessageSharedPtr& message); + + /** + * @brief SetGlobalPropertiesRequest class destructor + **/ + virtual ~SetGlobalPropertiesRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + void on_event(const event_engine::Event& event); + + private: + /* + * @brief Chec if HelpItems order is correct + * + * @return TRUE on success, otherwise FALSE + */ + bool CheckVrHelpItemsOrder(); + + /* + * @brief Check if there some not delivered hmi responses exist + * + * @return true if all responses received + */ + bool IsPendingResponseExist(); + + /* + * @brief Checks if request has at least one parameter + * + * @param params request parameters + * + * @returns true if at least one parameter is present in object + */ + static bool ValidateConditionalMandatoryParameters( + const smart_objects::SmartObject& params); + + DISALLOW_COPY_AND_ASSIGN(SetGlobalPropertiesRequest); + + bool is_ui_send_; + bool is_tts_send_; + + bool is_ui_received_; + bool is_tts_received_; + + hmi_apis::Common_Result::eType ui_result_; + hmi_apis::Common_Result::eType tts_result_; +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_GLOBAL_PROPERTIES_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_global_properties_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_global_properties_response.h new file mode 100644 index 000000000..dd80e738e --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_global_properties_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_GLOBAL_PROPERTIES_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_GLOBAL_PROPERTIES_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief Register app interface request command class + **/ +class SetGlobalPropertiesResponse : public CommandResponseImpl { + public: + /** + * @brief SetGlobalPropertiesResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit SetGlobalPropertiesResponse(const MessageSharedPtr& message); + + /** + * @brief SetGlobalPropertiesResponse class destructor + **/ + virtual ~SetGlobalPropertiesResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(SetGlobalPropertiesResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_GLOBAL_PROPERTIES_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_icon_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_icon_request.h new file mode 100644 index 000000000..d46094032 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_icon_request.h @@ -0,0 +1,88 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief SetIconRequest command class + **/ +class SetIconRequest : public CommandRequestImpl { + public: + /** + * @brief Contains information about the type of image + */ + typedef enum { + STATIC = 0, + DYNAMIC + } ImageType; + + /** + * @brief SetIconRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit SetIconRequest(const MessageSharedPtr& message); + + /** + * @brief SetIconRequest class destructor + **/ + virtual ~SetIconRequest(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + void on_event(const event_engine::Event& event); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(SetIconRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_icon_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_icon_response.h new file mode 100644 index 000000000..88dceaf5a --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_icon_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief SetIconResponse command class + **/ +class SetIconResponse : public CommandResponseImpl { + public: + /** + * @brief SetIconResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit SetIconResponse(const MessageSharedPtr& message); + + /** + * @brief SetIconResponse class destructor + **/ + virtual ~SetIconResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(SetIconResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_request.h new file mode 100644 index 000000000..e4fae5c0b --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_request.h @@ -0,0 +1,81 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_MEDIA_CLOCK_TIMER_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_MEDIA_CLOCK_TIMER_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief SetMediaClockRequest request command class + **/ +class SetMediaClockRequest : public CommandRequestImpl { + public: + /** + * \brief SetMediaClockRequest class constructor + **/ + explicit SetMediaClockRequest(const MessageSharedPtr& message); + + /** + * \brief ShowCommand class destructor + **/ + virtual ~SetMediaClockRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + void on_event(const event_engine::Event& event); + + private: + bool isDataValid(); + + DISALLOW_COPY_AND_ASSIGN(SetMediaClockRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_MEDIA_CLOCK_TIMER_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_response.h new file mode 100644 index 000000000..e835c17c8 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_response.h @@ -0,0 +1,67 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_MEDIA_CLOCK_TIMER_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_MEDIA_CLOCK_TIMER_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "application_manager/message.h" +#include "utils/macro.h" + +namespace application_manager { +namespace commands { + +class SetMediaClockTimerResponse : public CommandResponseImpl { + public: + /** + * \brief SetMediaClockTimerResponse class constructor + **/ + explicit SetMediaClockTimerResponse(const MessageSharedPtr& message); + + /** + * \brief SetMediaClockTimerResponse class destructor + **/ + virtual ~SetMediaClockTimerResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(SetMediaClockTimerResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_MEDIA_CLOCK_TIMER_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_constant_tbt_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_constant_tbt_request.h new file mode 100644 index 000000000..968a30cdb --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_constant_tbt_request.h @@ -0,0 +1,85 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_CONSTANT_TBT_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_CONSTANT_TBT_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "interfaces/MOBILE_API.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ShowConstantTBTRequest command class + **/ +class ShowConstantTBTRequest : public CommandRequestImpl { + public: + /** + * @brief ShowConstantTBTRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ShowConstantTBTRequest(const MessageSharedPtr& message); + + /** + * @brief ShowConstantTBTRequest class destructor + **/ + virtual ~ShowConstantTBTRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + virtual void on_event(const event_engine::Event& event); + + private: + + // members + mobile_apis::Result::eType result_; + + DISALLOW_COPY_AND_ASSIGN(ShowConstantTBTRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_CONSTANT_TBT_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_constant_tbt_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_constant_tbt_response.h new file mode 100644 index 000000000..6a102b198 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_constant_tbt_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_CONSTANT_TBT_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_CONSTANT_TBT_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief ShowConstantTBTResponse command class + **/ +class ShowConstantTBTResponse : public CommandResponseImpl { + public: + /** + * @brief ShowConstantTBTResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit ShowConstantTBTResponse(const MessageSharedPtr& message); + + /** + * @brief ShowConstantTBTResponse class destructor + **/ + virtual ~ShowConstantTBTResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(ShowConstantTBTResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_CONSTANT_TBT_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_request.h new file mode 100644 index 000000000..c187058dc --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_request.h @@ -0,0 +1,91 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "interfaces/MOBILE_API.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief show request command class + **/ +class ShowRequest : public CommandRequestImpl { + public: + /** + * \brief ShowRequest class constructor + **/ + explicit ShowRequest(const MessageSharedPtr& message); + + /** + * \brief ShowRequest class destructor + **/ + virtual ~ShowRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + virtual void on_event(const event_engine::Event& event); + + private: + + /* + * @brief Check if main fileds{1,2,3,4} have valid syntax + * + * @return TRUE on success, otherwise FALSE + */ + bool CheckMenuFieldsNames(); + + // members + mobile_apis::Result::eType result_; + + DISALLOW_COPY_AND_ASSIGN(ShowRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_response.h new file mode 100644 index 000000000..970b54747 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_response.h @@ -0,0 +1,67 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "application_manager/message.h" +#include "utils/macro.h" + +namespace application_manager { +namespace commands { + +class ShowResponse : public CommandResponseImpl { + public: + /** + * \brief ShowResponse class constructor + **/ + explicit ShowResponse(const MessageSharedPtr& message); + + /** + * \brief ShowResponse class destructor + **/ + virtual ~ShowResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(ShowResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/slider_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/slider_request.h new file mode 100644 index 000000000..edfba87a0 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/slider_request.h @@ -0,0 +1,84 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SLIDER_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SLIDER_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief slider request command class + **/ +class SliderRequest : public CommandRequestImpl { + public: + /** + * \brief SliderRequest class constructor + **/ + explicit SliderRequest(const MessageSharedPtr& message); + + /** + * \brief SliderRequest class destructor + **/ + virtual ~SliderRequest(); + + /** + * @brief Initialize request params + **/ + virtual bool Init(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + virtual void on_event(const event_engine::Event& event); + + private: + DISALLOW_COPY_AND_ASSIGN(SliderRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SLIDER_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/slider_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/slider_response.h new file mode 100644 index 000000000..b7821adca --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/slider_response.h @@ -0,0 +1,67 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SLIDER_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SLIDER_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "application_manager/message.h" +#include "utils/macro.h" + +namespace application_manager { +namespace commands { + +class SliderResponse : public CommandResponseImpl { + public: + /** + * \brief SliderResponse class constructor + **/ + explicit SliderResponse(const MessageSharedPtr& message); + + /** + * \brief SpeakResponseCommand class destructor + **/ + virtual ~SliderResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(SliderResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SLIDER_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/speak_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/speak_request.h new file mode 100644 index 000000000..6c4e69977 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/speak_request.h @@ -0,0 +1,86 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SPEAK_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SPEAK_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief speak request command class + **/ +class SpeakRequest : public CommandRequestImpl { + public: + /** + * \brief SpeakRequest class constructor + **/ + explicit SpeakRequest(const MessageSharedPtr& message); + + /** + * \brief SpeakRequest class destructor + **/ + virtual ~SpeakRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + virtual void on_event(const event_engine::Event& event); + + private: + /* + * @brief Sends Speak response to mobile side + * + * @param message which should send to mobile side + * + */ + void ProcessTTSSpeakResponse(const smart_objects::SmartObject& message); + DISALLOW_COPY_AND_ASSIGN(SpeakRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SPEAK_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/speak_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/speak_response.h new file mode 100644 index 000000000..ef9b8f89d --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/speak_response.h @@ -0,0 +1,67 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SPEAK_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SPEAK_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "application_manager/message.h" +#include "utils/macro.h" + +namespace application_manager { +namespace commands { + +class SpeakResponse : public CommandResponseImpl { + public: + /** + * \brief SpeakResponse class constructor + **/ + explicit SpeakResponse(const MessageSharedPtr& message); + + /** + * \brief SpeakResponse class destructor + **/ + virtual ~SpeakResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(SpeakResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SPEAK_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_button_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_button_request.h new file mode 100644 index 000000000..b91480dbb --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_button_request.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_BUTTON_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_BUTTON_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief SubscribeButtonRequest command class + **/ +class SubscribeButtonRequest : public CommandRequestImpl { + public: + /** + * @brief SubscribeButtonRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit SubscribeButtonRequest(const MessageSharedPtr& message); + + /** + * @brief SubscribeButtonRequest class destructor + **/ + virtual ~SubscribeButtonRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(SubscribeButtonRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_BUTTON_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_button_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_button_response.h new file mode 100644 index 000000000..836688454 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_button_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_BUTTON_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_BUTTON_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief SubscribeButtonResponse command class + **/ +class SubscribeButtonResponse : public CommandResponseImpl { + public: + /** + * @brief SubscribeButtonResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit SubscribeButtonResponse(const MessageSharedPtr& message); + + /** + * @brief SubscribeButtonResponse class destructor + **/ + virtual ~SubscribeButtonResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(SubscribeButtonResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_BUTTON_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_vehicle_data_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_vehicle_data_request.h new file mode 100644 index 000000000..ae657ffe7 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_vehicle_data_request.h @@ -0,0 +1,96 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_VEHICLE_DATA_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_VEHICLE_DATA_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief SubscribeVehicleDataRequest command class + **/ +class SubscribeVehicleDataRequest : public CommandRequestImpl { + public: + /** + * @brief SubscribeVehicleDataRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit SubscribeVehicleDataRequest(const MessageSharedPtr& message); + + /** + * @brief SubscribeButtonCommandRequest class destructor + **/ + virtual ~SubscribeVehicleDataRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + virtual void on_event(const event_engine::Event& event); + +#ifdef QT_HMI + private: + struct HmiRequest { + hmi_apis::Common_Result::eType status; + bool complete; + smart_objects::SmartObject value; + const char* str; + hmi_apis::FunctionID::eType func_id; + }; + + typedef std::vector<HmiRequest> HmiRequests; + HmiRequests hmi_requests_; +#endif // #ifdef QT_HMI + + private: + bool IsAnythingAlreadySubscribed(); + + DISALLOW_COPY_AND_ASSIGN(SubscribeVehicleDataRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_VEHICLE_DATA_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_vehicle_data_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_vehicle_data_response.h new file mode 100644 index 000000000..d2771c071 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_vehicle_data_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_VEHICLE_DATA_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_VEHICLE_DATA_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief SubscribeVehicleDataResponse command class + **/ +class SubscribeVehicleDataResponse : public CommandResponseImpl { + public: + /** + * @brief SubscribeVehicleDataResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit SubscribeVehicleDataResponse(const MessageSharedPtr& message); + + /** + * @brief UnsubscribeVehicleDataCommandRequest class destructor + **/ + virtual ~SubscribeVehicleDataResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(SubscribeVehicleDataResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_VEHICLE_DATA_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/sync_pdata_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/sync_pdata_request.h new file mode 100644 index 000000000..e41ab7f36 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/sync_pdata_request.h @@ -0,0 +1,76 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SYNC_PDATA_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SYNC_PDATA_REQUEST_H_ + +#include <string> +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief SyncPData request command class + **/ +class SyncPDataRequest : public CommandRequestImpl { + public: + /** + * \brief SyncPDataRequest class constructor + **/ + explicit SyncPDataRequest(const MessageSharedPtr& message); + + /** + * \brief SyncPDataRequest class destructor + **/ + virtual ~SyncPDataRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + static const std::string TEMPORARY_HARDCODED_FILENAME; + static const std::string TEMPORARY_HARDCODED_FOLDERNAME; + + DISALLOW_COPY_AND_ASSIGN(SyncPDataRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SYNC_PDATA_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/sync_pdata_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/sync_pdata_response.h new file mode 100644 index 000000000..529a7264a --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/sync_pdata_response.h @@ -0,0 +1,67 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SYNC_PDATA_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SYNC_PDATA_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "application_manager/message.h" +#include "utils/macro.h" + +namespace application_manager { +namespace commands { + +class SyncPDataResponse : public CommandResponseImpl { + public: + /** + * \brief SyncPDataResponse class constructor + **/ + explicit SyncPDataResponse(const MessageSharedPtr& message); + + /** + * \brief SyncPDataResponse class destructor + **/ + virtual ~SyncPDataResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(SyncPDataResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SYNC_PDATA_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/system_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/system_request.h new file mode 100644 index 000000000..745b06b3c --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/system_request.h @@ -0,0 +1,72 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_SYSTEM_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_SYSTEM_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief SystemRequest command class + **/ +class SystemRequest : public CommandRequestImpl { + public: + /** + * @brief SystemRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit SystemRequest(const MessageSharedPtr& message); + + /** + * @brief SystemRequest class destructor + **/ + virtual ~SystemRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(SystemRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_SYSTEM_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/system_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/system_response.h new file mode 100644 index 000000000..ca2fb9997 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/system_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_SYSTEM_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_SYSTEM_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" + + +namespace application_manager { + +namespace commands { + +/** + * @brief SystemResponse command class + **/ +class SystemResponse : public CommandResponseImpl { + public: + /** + * @brief SystemResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit SystemResponse(const MessageSharedPtr& message); + + /** + * @brief SystemResponse class destructor + **/ + virtual ~SystemResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(SystemResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_SYSTEM_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unregister_app_interface_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unregister_app_interface_request.h new file mode 100644 index 000000000..a5a53736e --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unregister_app_interface_request.h @@ -0,0 +1,76 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNREGISTER_APP_INTERFACE_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNREGISTER_APP_INTERFACE_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief Unregister app interface request command class + **/ +class UnregisterAppInterfaceRequest : public CommandRequestImpl { + public: + /** + * \brief UnregisterAppInterfaceRequest class constructor + **/ + explicit UnregisterAppInterfaceRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { + } + + /** + * \brief UnregisterAppInterfaceRequest class destructor + **/ + virtual ~UnregisterAppInterfaceRequest() { + } + + /** + * @brief Execute command + **/ + virtual void Run(); + // virtual void cleanUp() = 0; + + private: + DISALLOW_COPY_AND_ASSIGN(UnregisterAppInterfaceRequest); +}; + +} // namespace commands + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNREGISTER_APP_INTERFACE_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unregister_app_interface_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unregister_app_interface_response.h new file mode 100644 index 000000000..5c8928a6c --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unregister_app_interface_response.h @@ -0,0 +1,72 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNREGISTER_APP_INTERFACE_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNREGISTER_APP_INTERFACE_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { +namespace commands { +/** + * @brief Unregister app interface request command class + **/ +class UnregisterAppInterfaceResponse : public CommandResponseImpl { + public: + /** + * \brief UnregisterAppInterfaceResponse class constructor + **/ + explicit UnregisterAppInterfaceResponse(const MessageSharedPtr& response) + : CommandResponseImpl(response) { + } + + /** + * \brief UnregisterAppInterfaceResponse class destructor + **/ + virtual ~UnregisterAppInterfaceResponse() { + } + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UnregisterAppInterfaceResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNREGISTER_APP_INTERFACE_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_button_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_button_request.h new file mode 100644 index 000000000..3ec216de2 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_button_request.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_BUTTON_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_BUTTON_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UnsubscribeButtonRequest command class + **/ +class UnsubscribeButtonRequest : public CommandRequestImpl { + public: + /** + * @brief UnsubscribeButtonRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UnsubscribeButtonRequest(const MessageSharedPtr& message); + + /** + * @brief UnsubscribeButtonRequest class destructor + **/ + virtual ~UnsubscribeButtonRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UnsubscribeButtonRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_BUTTON_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_button_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_button_response.h new file mode 100644 index 000000000..972da4806 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_button_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_BUTTON_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_BUTTON_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UnsubscribeButtonResponse command class + **/ +class UnsubscribeButtonResponse : public CommandResponseImpl { + public: + /** + * @brief UnsubscribeButtonResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UnsubscribeButtonResponse(const MessageSharedPtr& message); + + /** + * @brief UnsubscribeButtonResponse class destructor + **/ + virtual ~UnsubscribeButtonResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UnsubscribeButtonResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_BUTTON_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_vehicle_data_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_vehicle_data_request.h new file mode 100644 index 000000000..be8a00389 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_vehicle_data_request.h @@ -0,0 +1,95 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UnsubscribeVehicleDataRequest command class + **/ +class UnsubscribeVehicleDataRequest : public CommandRequestImpl { + public: + /** + * @brief UnsubscribeVehicleDataRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UnsubscribeVehicleDataRequest(const MessageSharedPtr& message); + + /** + * @brief UnsubscribeVehicleDataRequest class destructor + **/ + virtual ~UnsubscribeVehicleDataRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + virtual void on_event(const event_engine::Event& event); + +#ifdef QT_HMI + private: + struct HmiRequest { + hmi_apis::Common_Result::eType status; + bool complete; + smart_objects::SmartObject value; + const char* str; + hmi_apis::FunctionID::eType func_id; + }; + + typedef std::vector<HmiRequest> HmiRequests; + HmiRequests hmi_requests_; +#endif // #ifdef QT_HMI + + private: + bool IsAnythingAlreadyUnsubscribed(); + DISALLOW_COPY_AND_ASSIGN(UnsubscribeVehicleDataRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_vehicle_data_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_vehicle_data_response.h new file mode 100644 index 000000000..3fb932ecf --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_vehicle_data_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UnsubscribeVehicleDataResponse command class + **/ +class UnsubscribeVehicleDataResponse : public CommandResponseImpl { + public: + /** + * @brief UnsubscribeVehicleDataResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UnsubscribeVehicleDataResponse(const MessageSharedPtr& message); + + /** + * @brief UnsubscribeVehicleDataResponse class destructor + **/ + virtual ~UnsubscribeVehicleDataResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UnsubscribeVehicleDataResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/update_turn_list_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/update_turn_list_request.h new file mode 100644 index 000000000..0ae79a54e --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/update_turn_list_request.h @@ -0,0 +1,92 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UPDATE_TURN_LIST_REQUEST_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UPDATE_TURN_LIST_REQUEST_H_ + +#include "application_manager/commands/command_request_impl.h" +#include "interfaces/MOBILE_API.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UpdateTurnListRequest command class + **/ +class UpdateTurnListRequest : public CommandRequestImpl { + public: + /** + * @brief UpdateTurnListRequest class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UpdateTurnListRequest(const MessageSharedPtr& message); + + /** + * @brief UpdateTurnListRequest class destructor + **/ + virtual ~UpdateTurnListRequest(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + virtual void on_event(const event_engine::Event& event); + + private: + /** + * @brief check correct parameter turnList + * + * @return TRUE if turnList is correct, + * otherwise FALSE + */ + bool CheckTurnListArray(); + + // members + mobile_apis::Result::eType result_; + + DISALLOW_COPY_AND_ASSIGN(UpdateTurnListRequest); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UPDATE_TURN_LIST_REQUEST_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/update_turn_list_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/update_turn_list_response.h new file mode 100644 index 000000000..fdbf64826 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/update_turn_list_response.h @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UPDATE_TURN_LIST_RESPONSE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UPDATE_TURN_LIST_RESPONSE_H_ + +#include "application_manager/commands/command_response_impl.h" +#include "utils/macro.h" + +namespace application_manager { + +namespace commands { + +/** + * @brief UpdateTurnListResponse command class + **/ +class UpdateTurnListResponse : public CommandResponseImpl { + public: + /** + * @brief UpdateTurnListResponse class constructor + * + * @param message Incoming SmartObject message + **/ + explicit UpdateTurnListResponse(const MessageSharedPtr& message); + + /** + * @brief UpdateTurnListResponse class destructor + **/ + virtual ~UpdateTurnListResponse(); + + /** + * @brief Execute command + **/ + virtual void Run(); + + private: + DISALLOW_COPY_AND_ASSIGN(UpdateTurnListResponse); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UPDATE_TURN_LIST_RESPONSE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/pending.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/pending.h new file mode 100644 index 000000000..bbfc24665 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/pending.h @@ -0,0 +1,75 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PENDING_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PENDING_H_ + +#include <set> +#include "utils/macro.h" +#include "utils/lock.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +/* + * @brief Class for monitoring of pending requests/responses to HMI + */ +class Pending { + public: + /* + * Constructor + */ + Pending(); + + /* + * Destructor + */ + ~Pending(); + + void Add(hmi_apis::FunctionID::eType id); + void Remove(hmi_apis::FunctionID::eType id); + bool IsFinal(hmi_apis::FunctionID::eType id); + + private: + std::set<hmi_apis::FunctionID::eType> pending_; + sync_primitives::Lock lock_; + hmi_apis::FunctionID::eType last_; + DISALLOW_COPY_AND_ASSIGN(Pending); +}; + +} // namespace commands +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PENDING_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event.h b/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event.h new file mode 100644 index 000000000..e76b767f1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event.h @@ -0,0 +1,147 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_H_ + +#include <interfaces/HMI_API.h> + +#include "smart_objects/smart_object.h" +#include "application_manager/smart_object_keys.h" + +namespace application_manager { +namespace event_engine { + +namespace smart_objects = NsSmartDeviceLink::NsSmartObjects; + +class Event { + public: + + // Typedef for possible Event ID's from mobile_apis functionID enum + typedef hmi_apis::FunctionID::eType EventID; + + /* + * @brief Constructor with parameters + * + * @param id Event ID. Please see mobile_apis::FunctionID for possible ID's + */ + explicit Event(const EventID& id); + + /* + * @brief Destructor + */ + virtual ~Event(); + + /* + * @brief Sends synchronously event to all subscribers. + * + */ + void raise(); + + /* + * @brief Provides event ID + */ + inline const EventID& id() const; + + /* + * @brief Sets event smart object + * + * @param so The smart_object received in HMI response + */ + void set_smart_object(smart_objects::SmartObject& so); + + /* + * @brief Retrieves event smart object + * + * @return The smart_object received in HMI response + */ + inline const smart_objects::SmartObject& smart_object() const; + + /* + * @brief Retrieves smart object request ID + */ + inline int32_t smart_object_function_id() const; + + /* + * @brief Retrieves smart object correlation ID + */ + inline int32_t smart_object_correlation_id() const; + + /* + * @brief Retrieves smart_object response type + */ + inline int32_t smart_object_type() const; + + protected: + + private: + + EventID id_; + smart_objects::SmartObject response_so_; + + /* + * @brief Default constructor + * + * Unimplemented to avoid misusing + */ + Event(); + + DISALLOW_COPY_AND_ASSIGN(Event); +}; + +const Event::EventID& Event::id() const { + return id_; +} + +const smart_objects::SmartObject& Event::smart_object() const { + return response_so_; +} + +int32_t Event::smart_object_function_id() const { + return response_so_.getElement( + strings::params).getElement(strings::function_id).asInt(); +} + +int32_t Event::smart_object_correlation_id() const { + return response_so_.getElement( + strings::params).getElement(strings::correlation_id).asInt(); +} + +int32_t Event::smart_object_type() const { + return response_so_.getElement( + strings::params).getElement(strings::message_type).asInt(); +} + +} +} + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event_dispatcher.h b/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event_dispatcher.h new file mode 100644 index 000000000..fb7d4cd50 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event_dispatcher.h @@ -0,0 +1,117 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_DISPATCHER_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_DISPATCHER_H_ + +#include <list> +#include <map> + +#include "utils/lock.h" +#include "utils/singleton.h" + +#include "application_manager/event_engine/event.h" + +namespace application_manager { +namespace event_engine { + +class EventObserver; + +class EventDispatcher : public utils::Singleton<EventDispatcher> { + public: + + /* + * @brief Delivers the event to all subscribers + * + * @param event Received event + */ + void raise_event(const Event& event); + + /* + * @brief Subscribe the observer to event + * + * @param event_id The event ID to subscribe for + * @param hmi_correlation_id The event HMI correlation ID + * @param observer The observer to subscribe for event + */ + void add_observer(const Event::EventID& event_id, + int32_t hmi_correlation_id, + EventObserver* const observer); + + /* + * @brief Unsubscribes the observer from specific event + * + * @param event_id The event ID to unsubscribe from + * @param observer The observer to be unsubscribed + */ + void remove_observer(const Event::EventID& event_id, + EventObserver* const observer); + + /* + * @brief Unsubscribes the observer from all events + * + * @param observer The observer to be unsubscribed + */ + void remove_observer(EventObserver* const observer); + + protected: + + private: + + /* + * @brief Default constructor + */ + EventDispatcher(); + + /* + * @brief Destructor + */ + virtual ~EventDispatcher(); + + DISALLOW_COPY_AND_ASSIGN(EventDispatcher); + + FRIEND_BASE_SINGLETON_CLASS(EventDispatcher); + + // Data types section + typedef std::list<EventObserver*> ObserverList; + typedef std::map<int32_t, ObserverList> ObserversMap; + typedef std::map<Event::EventID, ObserversMap> EventObserverMap; + + // Members section + sync_primitives::Lock state_lock_; + EventObserverMap observers_; +}; + +} +} + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_DISPATCHER_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event_observer.h b/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event_observer.h new file mode 100644 index 000000000..863120329 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event_observer.h @@ -0,0 +1,116 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_OBSERVER_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_OBSERVER_H_ + +#include <string> +#include "application_manager/event_engine/event.h" +#include "application_manager/event_engine/event_dispatcher.h" + +namespace application_manager { +namespace event_engine { + +class EventObserver +{ + public: + + friend class EventDispatcher; + + // Typedef for possible Observer ID's from mobile_apis functionID enum + typedef unsigned long ObserverID; + + /* + * @brief Constructor + * + */ + EventObserver(); + + /* + * @brief Destructor + */ + virtual ~EventObserver(); + + /** + * @brief Retrieves observer unique id + * + * @return Unique Observer id + */ + inline const ObserverID& id() const; + + /** + * @brief Interface method that is called whenever new event received + * + * @param event The received event + */ + virtual void on_event(const Event& event) = 0; + + protected: + + /* + * @brief Subscribe to an event + * + * @param event_id The event ID to subscribe for + * @param hmi_correlation_id The event HMI correlation ID. + * If param is omitted, it means subscription for HMI notification + */ + void subscribe_on_event( + const Event::EventID& event_id, int32_t hmi_correlation_id = 0); + + /* + * @brief Unsubscribes the observer from specific event + * + * @param event_id The event ID to unsubscribe from + */ + void unsubscribe_from_event(const Event::EventID& event_id); + + /* + * @brief Unsubscribes the observer from all events + * + */ + void unsubscribe_from_all_events(); + + private: + + ObserverID id_; + + DISALLOW_COPY_AND_ASSIGN(EventObserver); +}; + +const EventObserver::ObserverID& EventObserver::id() const { + return id_; +} + +} +} + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_OBSERVER_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/hmi_capabilities.h b/SDL_Core/src/components/application_manager/include/application_manager/hmi_capabilities.h new file mode 100644 index 000000000..2ac8fd9c4 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/hmi_capabilities.h @@ -0,0 +1,515 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_HMI_CAPABILITIES_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_HMI_CAPABILITIES_H_ + +#include "interfaces/HMI_API.h" +#include "interfaces/MOBILE_API.h" + +namespace NsSmartDeviceLink { +namespace NsSmartObjects { +class SmartObject; +} +} + +namespace smart_objects = NsSmartDeviceLink::NsSmartObjects; + +namespace application_manager { + +class ApplicationManagerImpl; + +class HMICapabilities { + + public: + + /* + * @ Class constructor + * + * @param app_mngr Application manager pointer + */ + explicit HMICapabilities(ApplicationManagerImpl* const app_mngr); + + /* + * @brief Class destructor + * + */ + virtual ~HMICapabilities(); + + /** + * @brief Checks if all HMI capabilities received + * + * @return TRUE if all information received, otherwise FALSE + */ + bool is_hmi_capabilities_initialized() const; + + /* + * @brief Checks is image type(Static/Dynamic) requested by + * Mobile Device is supported on current HMI. + * @param image_type recieved type of image from Enum. + * @return Bool true if supported + */ + bool VerifyImageType(int32_t image_type) const; + + /** + * @brief Checks if all HMI capabilities received + * + * @return TRUE if all information received, otherwise FALSE + */ + inline bool is_vr_cooperating() const; + void set_is_vr_cooperating(bool value); + + inline bool is_tts_cooperating() const; + void set_is_tts_cooperating(bool value); + + inline bool is_ui_cooperating() const; + void set_is_ui_cooperating(bool value); + + inline bool is_navi_cooperating() const; + void set_is_navi_cooperating(bool value); + + inline bool is_ivi_cooperating() const; + void set_is_ivi_cooperating(bool value); + + /* + * @brief Retrieves if mixing audio is supported by HMI + * (ie recording TTS command and playing audio) + * + * @return Current state of the mixing audio flag + */ + inline bool attenuated_supported() const; + + /* + * @brief Sets state for mixing audio + * + * @param state New state to be set + */ + void set_attenuated_supported(bool state); + + /* + * @brief Retrieves currently active UI language + * + * @return Currently active UI language + */ + inline const hmi_apis::Common_Language::eType& + active_ui_language() const; + + /* + * @brief Sets currently active UI language + * + * @param language Currently active UI language + */ + void set_active_ui_language(const hmi_apis::Common_Language::eType& language); + + /* + * @brief Retrieves UI supported languages + * + * @return Currently supported UI languages + */ + inline const smart_objects::SmartObject* + ui_supported_languages() const; + + /* + * @brief Sets supported UI languages + * + * @param supported_languages Supported UI languages + */ + void set_ui_supported_languages( + const smart_objects::SmartObject& supported_languages); + + /* + * @brief Retrieves currently active VR language + * + * @return Currently active VR language + */ + inline const hmi_apis::Common_Language::eType& + active_vr_language() const; + + /* + * @brief Sets currently active VR language + * + * @param language Currently active VR language + */ + void set_active_vr_language(const hmi_apis::Common_Language::eType& language); + + /* + * @brief Retrieves VR supported languages + * + * @return Currently supported VR languages + */ + inline const smart_objects::SmartObject* + vr_supported_languages() const; + + /* + * @brief Sets supported VR languages + * + * @param supported_languages Supported VR languages + */ + void set_vr_supported_languages( + const smart_objects::SmartObject& supported_languages); + + /* + * @brief Retrieves currently active TTS language + * + * @return Currently active TTS language + */ + inline const hmi_apis::Common_Language::eType& + active_tts_language() const; + + /* + * @brief Sets currently active TTS language + * + * @param language Currently active TTS language + */ + void set_active_tts_language( + const hmi_apis::Common_Language::eType& language); + + /* + * @brief Retrieves TTS supported languages + * + * @return Currently supported TTS languages + */ + inline const smart_objects::SmartObject* + tts_supported_languages() const; + + /* + * @brief Sets supported TTS languages + * + * @param supported_languages Supported TTS languages + */ + void set_tts_supported_languages( + const smart_objects::SmartObject& supported_languages); + + /* + * @brief Retrieves information about the display capabilities + * + * @return Currently supported display capabilities + */ + inline const smart_objects::SmartObject* + display_capabilities() const; + + /* + * @brief Sets supported display capabilities + * + * @param display_capabilities supported display capabilities + */ + void set_display_capabilities( + const smart_objects::SmartObject& display_capabilities); + + /* + * @brief Retrieves information about the HMI zone capabilities + * + * @return Currently supported HMI zone capabilities + */ + inline const smart_objects::SmartObject* + hmi_zone_capabilities() const; + + /* + * @brief Sets supported HMI zone capabilities + * + * @param hmi_zone_capabilities supported HMI zone capabilities + */ + void set_hmi_zone_capabilities( + const smart_objects::SmartObject& hmi_zone_capabilities); + + /* + * @brief Retrieves information about the SoftButton's capabilities + * + * @return Currently supported SoftButton's capabilities + */ + inline const smart_objects::SmartObject* + soft_button_capabilities() const; + + /* + * @brief Sets supported SoftButton's capabilities + * + * @param soft_button_capabilities supported SoftButton's capabilities + */ + void set_soft_button_capabilities( + const smart_objects::SmartObject& soft_button_capabilities); + + /* + * @brief Retrieves information about the Button's capabilities + * + * @return Currently supported Button's capabilities + */ + inline const smart_objects::SmartObject* button_capabilities() const; + + /* + * @brief Sets supported Button's capabilities + * + * @param soft_button_capabilities supported Button's capabilities + */ + void set_button_capabilities( + const smart_objects::SmartObject& button_capabilities); + + /* + * @brief Sets supported speech capabilities + * + * @param speech_capabilities supported speech capabilities + */ + void set_speech_capabilities( + const smart_objects::SmartObject& speech_capabilities); + + /* + * @brief Retrieves information about the speech capabilities + * + * @return Currently supported speech capabilities + */ + inline const smart_objects::SmartObject* speech_capabilities() const; + + /* + * @brief Sets supported VR capabilities + * + * @param vr_capabilities supported VR capabilities + */ + void set_vr_capabilities(const smart_objects::SmartObject& vr_capabilities); + + /* + * @brief Retrieves information about the VR capabilities + * + * @return Currently supported VR capabilities + */ + inline const smart_objects::SmartObject* vr_capabilities() const; + + /* + * @brief Sets supported audio_pass_thru capabilities + * + * @param vr_capabilities supported audio_pass_thru capabilities + */ + void set_audio_pass_thru_capabilities( + const smart_objects::SmartObject& audio_pass_thru_capabilities); + + /* + * @brief Retrieves information about the audio_pass_thru capabilities + * + * @return Currently supported audio_pass_thru capabilities + */ + inline const smart_objects::SmartObject* + audio_pass_thru_capabilities() const; + + /* + * @brief Retrieves information about the preset bank capabilities + * + * @return Currently supported preset bank capabilities + */ + inline const smart_objects::SmartObject* preset_bank_capabilities() const; + + /* + * @brief Sets supported preset bank capabilities + * + * @param soft_button_capabilities supported preset bank capabilities + */ + void set_preset_bank_capabilities( + const smart_objects::SmartObject& preset_bank_capabilities); + + /* + * @brief Sets vehicle information(make, model, modelYear) + * + * @param vehicle_type Cuurent vehicle information + */ + void set_vehicle_type(const smart_objects::SmartObject& vehicle_type); + + /* + * @brief Retrieves vehicle information(make, model, modelYear) + * + * @param vehicle_type Cuurent vehicle information + */ + inline const smart_objects::SmartObject* vehicle_type() const; + + /* + * @brief Retrieves information about the prerecorded speech + * + * @return Currently supported prerecorded speech + */ + inline const smart_objects::SmartObject* prerecorded_speech() const; + + /* + * @brief Sets supported prerecorded speech + * + * @param prerecorded_speech supported prerecorded speech + */ + void set_prerecorded_speech( + const smart_objects::SmartObject& prerecorded_speech); + + + protected: + + /* + * @brief Loads capabilities from local file in case SDL was launched + * without HMI + * + * @return TRUE if capabilities loaded successfully, otherwise FALSE. + */ + bool load_capabilities_from_file(); + + private: + bool is_vr_cooperating_; + bool is_tts_cooperating_; + bool is_ui_cooperating_; + bool is_navi_cooperating_; + bool is_ivi_cooperating_; + + // to check if IsReady response for corresponding interface received + bool is_vr_ready_response_recieved_; + bool is_tts_ready_response_recieved_; + bool is_ui_ready_response_recieved_; + bool is_navi_ready_response_recieved_; + bool is_ivi_ready_response_recieved_; + + bool attenuated_supported_; + hmi_apis::Common_Language::eType ui_language_; + hmi_apis::Common_Language::eType vr_language_; + hmi_apis::Common_Language::eType tts_language_; + smart_objects::SmartObject* vehicle_type_; + smart_objects::SmartObject* ui_supported_languages_; + smart_objects::SmartObject* tts_supported_languages_; + smart_objects::SmartObject* vr_supported_languages_; + smart_objects::SmartObject* display_capabilities_; + smart_objects::SmartObject* hmi_zone_capabilities_; + smart_objects::SmartObject* soft_buttons_capabilities_; + smart_objects::SmartObject* button_capabilities_; + smart_objects::SmartObject* preset_bank_capabilities_; + smart_objects::SmartObject* vr_capabilities_; + smart_objects::SmartObject* speech_capabilities_; + smart_objects::SmartObject* audio_pass_thru_capabilities_; + smart_objects::SmartObject* prerecorded_speech_; + + ApplicationManagerImpl* app_mngr_; + + DISALLOW_COPY_AND_ASSIGN(HMICapabilities); +}; + +bool HMICapabilities::is_ui_cooperating() const { + return is_ui_cooperating_; +} + +bool HMICapabilities::is_vr_cooperating() const { + return is_vr_cooperating_; +} + +bool HMICapabilities::is_tts_cooperating() const { + return is_tts_cooperating_; +} + +bool HMICapabilities::is_navi_cooperating() const { + return is_navi_cooperating_; +} + +bool HMICapabilities::is_ivi_cooperating() const { + return is_ivi_cooperating_; +} + +const hmi_apis::Common_Language::eType& +HMICapabilities::active_ui_language() const { + return ui_language_; +} + +const smart_objects::SmartObject* +HMICapabilities::ui_supported_languages() const { + return ui_supported_languages_; +} + +const hmi_apis::Common_Language::eType& +HMICapabilities::active_vr_language() const { + return vr_language_; +} + +const smart_objects::SmartObject* +HMICapabilities::vr_supported_languages() const { + return vr_supported_languages_; +} + +const hmi_apis::Common_Language::eType& +HMICapabilities::active_tts_language() const { + return tts_language_; +} + +const smart_objects::SmartObject* +HMICapabilities::tts_supported_languages() const { + return tts_supported_languages_; +} + +const smart_objects::SmartObject* +HMICapabilities::display_capabilities() const { + return display_capabilities_; +} + +const smart_objects::SmartObject* +HMICapabilities::hmi_zone_capabilities() const { + return hmi_zone_capabilities_; +} + +const smart_objects::SmartObject* +HMICapabilities::soft_button_capabilities() const { + return soft_buttons_capabilities_; +} + +const smart_objects::SmartObject* HMICapabilities::button_capabilities() const { + return button_capabilities_; +} + +const smart_objects::SmartObject* +HMICapabilities::speech_capabilities() const { + return speech_capabilities_; +} + +const smart_objects::SmartObject* HMICapabilities::vr_capabilities() const { + return vr_capabilities_; +} + +const smart_objects::SmartObject* +HMICapabilities::audio_pass_thru_capabilities() const { + return audio_pass_thru_capabilities_; +} + +const smart_objects::SmartObject* +HMICapabilities::preset_bank_capabilities() const { + return preset_bank_capabilities_; +} + +bool HMICapabilities::attenuated_supported() const { + return attenuated_supported_; +} + +const smart_objects::SmartObject* HMICapabilities::vehicle_type() const { + return vehicle_type_; +} + +const smart_objects::SmartObject* +HMICapabilities::prerecorded_speech() const { + return prerecorded_speech_; +} + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_HMI_CAPABILITIES_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/hmi_command_factory.h b/SDL_Core/src/components/application_manager/include/application_manager/hmi_command_factory.h new file mode 100644 index 000000000..de0fa7e25 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/hmi_command_factory.h @@ -0,0 +1,65 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_HMI_COMMAND_FACTORY_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_HMI_COMMAND_FACTORY_H_ + +#include "application_manager/commands/command.h" +#include "utils/macro.h" +#include "utils/logger.h" + +namespace application_manager { + +typedef utils::SharedPtr<commands::Command> CommandSharedPtr; + +/** + * @brief Factory class for command creation + **/ +class HMICommandFactory { + public: + /** + * @brief Create command object and return pointer to it + * + * @param smartObject SmartObject shared pointer. + * @return Pointer to created command object. + **/ + static CommandSharedPtr CreateCommand(const MessageSharedPtr& message); + + private: + HMICommandFactory(); + static log4cxx::LoggerPtr logger_; + DISALLOW_COPY_AND_ASSIGN(HMICommandFactory); +}; + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_HMI_COMMAND_FACTORY_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/message.h b/SDL_Core/src/components/application_manager/include/application_manager/message.h new file mode 100644 index 000000000..0b439c245 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/message.h @@ -0,0 +1,121 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MESSAGE_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MESSAGE_H_ + +#include <string> +#include <vector> + +#include "utils/shared_ptr.h" +#include "protocol_handler/message_priority.h" +#include "smart_objects/smart_object.h" +#include "protocol_handler/rpc_type.h" + +namespace smart_objects = NsSmartDeviceLink::NsSmartObjects; + +namespace application_manager { + +typedef std::vector<uint8_t> BinaryData; + +// Message type is a general type used by both mobile and HMI messages +enum MessageType { + kUnknownType = -1, + kRequest = 0, + kResponse = 1, + kNotification = 2, + kErrorResponse = 3 +}; + +// Map PrcType to corresponding MessageType +MessageType MessageTypeFromRpcType(protocol_handler::RpcType rpc_type); + +enum ProtocolVersion { + kUnknownProtocol = -1, + kHMI = 0, + kV1 = 1, + kV2 = 2 +}; + +class Message { + public: + Message(protocol_handler::MessagePriority priority); + Message(const Message& message); + Message& operator=(const Message& message); + bool operator==(const Message& message); + ~Message(); + + //! -------------------------------------------------------------------------- + int32_t function_id() const; + int32_t correlation_id() const; + int32_t connection_key() const; + + MessageType type() const; + ProtocolVersion protocol_version() const; + + const std::string& json_message() const; + const BinaryData* binary_data() const; + bool has_binary_data() const; + const smart_objects::SmartObject& smart_object() const; + + //! -------------------------------------------------------------------------- + void set_function_id(int32_t id); + void set_correlation_id(int32_t id); + void set_connection_key(int32_t key); + void set_message_type(MessageType type); + void set_binary_data(BinaryData* data); + void set_json_message(const std::string& json_message); + void set_protocol_version(ProtocolVersion version); + void set_smart_object(const smart_objects::SmartObject& object); + + protocol_handler::MessagePriority Priority() const { return priority_; } + + private: + int32_t function_id_; // @remark protocol V2. + int32_t correlation_id_; // @remark protocol V2. + MessageType type_; // @remark protocol V2. + + // Pre-calculated message priority, higher priority messages are + // Processed first + protocol_handler::MessagePriority priority_; + + int32_t connection_key_; + ProtocolVersion version_; + std::string json_message_; + smart_objects::SmartObject smart_object_; + + // TODO(akandul): replace with shared_ptr + BinaryData* binary_data_; +}; +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MESSAGE_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/message_helper.h b/SDL_Core/src/components/application_manager/include/application_manager/message_helper.h new file mode 100644 index 000000000..a65321690 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/message_helper.h @@ -0,0 +1,351 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MESSAGE_HELPER_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MESSAGE_HELPER_H_ + +#include <map> +#include <string> +#include "interfaces/MOBILE_API.h" +#include "utils/macro.h" +#include "connection_handler/device.h" +#include "application_manager/application.h" + +namespace NsSmartDeviceLink { +namespace NsSmartObjects { +class SmartObject; +} +} + +namespace application_manager { +namespace mobile_api = mobile_apis; +namespace smart_objects = NsSmartDeviceLink::NsSmartObjects; + +/* + * @brief Typedef for HMI TextFieldName type + */ +typedef enum { + MAIN_FILED1 = 0, + MAIN_FILED2, + MAIN_FILED3, + MAIN_FILED4, + STATUS_BAR, + MEDIA_CLOCK, + MEDIA_TRACK, + ALERT_TEXT1, + ALERT_TEXT2, + ALERT_TEXT3, + SCROLLABLE_MSG_BODY, + INITIAL_INTERACTION_TEXT, + NAVI_TEXT1, + NAVI_TEXT2, + ETA, + TOTAL_DISTANCE, + NAVI_TEXT, + AUDIO_DISPLAY_TEXT1, + AUDIO_DISPLAY_TEXT2, + SLIDER_HADER, + SLIDER_FOOTEER +} TextFieldName; + +/* + * @brief Typedef for the vehicle data types that can + * be published and subscribed to + */ +typedef enum { + GPS = 0, + SPEED, + RPM, + FUELLEVEL, + FUELLEVEL_STATE, + FUELCONSUMPTION, + EXTERNTEMP, + VIN, + PRNDL, + TIREPRESSURE, + ODOMETER, + BELTSTATUS, + BODYINFO, + DEVICESTATUS, + ECALLINFO, + AIRBAGSTATUS, + EMERGENCYEVENT, + CLUSTERMODESTATUS, + MYKEY, + BRAKING, + WIPERSTATUS, + HEADLAMPSTATUS, + BATTVOLTAGE, + ENGINETORQUE, + ACCPEDAL, + STEERINGWHEEL +} VehicleDataType; + +/* + * @brief Typedef for VehicleData + * + * @param const char* Name of the parameter in mobile request + * @param VehicleDataType Enum for vehicle data + */ +typedef std::map<const char*, VehicleDataType> VehicleData; + +/** + * @brief MessageHelper class + **/ +class MessageHelper { + public: + + typedef std::vector<smart_objects::SmartObject*> SmartObjectList; + + /** + * @brief Sends HMI status notification to mobile + * + *@param application_impl application with changed HMI status + * + **/ + static void SendHMIStatusNotification(const Application& application_impl); + + /** + * @brief Sends OnAppRegistered notification to HMI + * + *@param application_impl application with changed HMI status + * + **/ + static void SendOnAppRegisteredNotificationToHMI( + const Application& application_impl); + + /** + * @brief Sendss Vr Command 'Help' + */ + static void SendHelpVrCommand(); + + /** + * @brief Create mobile HashUpdateNotification + */ + static smart_objects::SmartObject* GetHashUpdateNotification(const uint32_t app_id); + + /** + * @brief Sends to mobile HashUpdateNotification + */ + static void SendHashUpdateNotification(const uint32_t app_id); + + /** + * @brief Removes Vr Synonyms of application name from HMI + * when unregistering application. + */ + static void SendRemoveVrCommandsOnUnregisterApp(ApplicationConstSharedPtr app); + + /** + * @brief Sends OnAppInterfaceUnregistered notification to mobile + * + *@param connection_key Connection key + *@param reason Reason + * + **/ + static void SendOnAppInterfaceUnregisteredNotificationToMobile( + int32_t connection_key, + mobile_apis::AppInterfaceUnregisteredReason::eType reason); + + /* + * @brief Retrieve vehicle data map for param name in mobile request + * to VehicleDataType + * + * @return VehicleData reference + */ + static const VehicleData& vehicle_data(); + + static smart_objects::SmartObject* CreateBlockedByPoliciesResponse( + mobile_apis::FunctionID::eType function_id, + mobile_apis::Result::eType result, uint32_t correlation_id, + uint32_t connection_key); + + /* + * @brief Prepare GetDeviceListResponse + * + * + * @param devices Devices list + * + */ + static smart_objects::SmartObject* CreateDeviceListSO( + const connection_handler::DeviceList& devices); + + static smart_objects::SmartObject* CreateModuleInfoSO( + uint32_t function_id); + + static smart_objects::SmartObject* CreateSetAppIcon( + const std::string& path_to_icon, uint32_t app_id); + + /** + * @brief Sends IVI subscriptions + */ + static bool SendIVISubscribtions(const uint32_t app_id); + + /** + * @brief Sends IVI subscriptions + */ + static SmartObjectList GetIVISubscribtionRequests(const uint32_t app_id); + + static void SendAppDataToHMI(ApplicationConstSharedPtr app); + static void SendGlobalPropertiesToHMI(ApplicationConstSharedPtr app); + static SmartObjectList CreateGlobalPropertiesRequestsToHMI(ApplicationConstSharedPtr app); + + static smart_objects::SmartObject* CreateAppVrHelp(ApplicationConstSharedPtr app); + + static void SendShowRequestToHMI(ApplicationConstSharedPtr app); + static void SendShowConstantTBTRequestToHMI(ApplicationConstSharedPtr app); + static void SendAddCommandRequestToHMI(ApplicationConstSharedPtr app); + static SmartObjectList CreateAddCommandRequestToHMI(ApplicationConstSharedPtr app); + + static void SendChangeRegistrationRequestToHMI(ApplicationConstSharedPtr app); + static void SendAddVRCommandToHMI( + uint32_t cmd_id, const smart_objects::SmartObject& vr_commands, + uint32_t app_id); + + static smart_objects::SmartObject* CreateAddVRCommandToHMI( + uint32_t cmd_id, const smart_objects::SmartObject& vr_commands, + uint32_t app_id); + + static void SendAddSubMenuRequestToHMI(ApplicationConstSharedPtr app); + static SmartObjectList CreateAddSubMenuRequestToHMI(ApplicationConstSharedPtr app); + + static void RemoveAppDataFromHMI(ApplicationSharedPtr app); + static void SendOnSdlCloseNotificationToHMI(); + static void SendOnAppUnregNotificationToHMI(ApplicationConstSharedPtr app); + static void SendDeleteCommandRequestToHMI(ApplicationConstSharedPtr app); + static void SendDeleteSubMenuRequestToHMI(ApplicationConstSharedPtr app); + static void ResetGlobalproperties(ApplicationSharedPtr app); + + static void SendActivateAppToHMI(uint32_t const app_id); + + + /* + * @brief Sends notification to HMI to start video streaming + * + * @param url URL for video streamng + * @param connection_key Application connection key + * + */ + static void SendNaviStartStream(const std::string& url, int32_t connection_key); + + /* + * @brief Sends notification to HMI to stop video streaming + * + * @param connection_key Application connection key + * + */ + static void SendNaviStopStream(int32_t connection_key); + + /* + * @brief Sends notification to HMI to start audio streaming + * + * @param url URL for video streamng + * @param connection_key Application connection key + * + */ + static void SendAudioStartStream(const std::string& url, int32_t connection_key); + + /* + * @brief Sends notification to HMI to stop audio streaming + * + * @param connection_key Application connection key + * + */ + static void SendAudioStopStream(int32_t connection_key); + + /* + * @brief Sends notification to HMI to stop audioPathThru + * + * @param connection_key Application connection key + * + * @return TRUE on SUCCES otherwise return FALSE + */ + static bool SendStopAudioPathThru(); + + static smart_objects::SmartObject* CreateNegativeResponse( + uint32_t connection_key, int32_t function_id, uint32_t correlation_id, + int32_t result_code); + + /* + * @brief Verify image and add image file full path + * + * @param SmartObject with image + * + * @param app current application + * + * @return verification result + * + */ + static mobile_apis::Result::eType VerifyImage(smart_objects::SmartObject& image, + ApplicationConstSharedPtr app); + + /* + * @brief Finds "Image" structure in request and verify image file presence + * in Core. + * + * @param message SmartObject with request + * + * @param app current application + * + * @return verification result + * + */ + static mobile_apis::Result::eType VerifyImageFiles( + smart_objects::SmartObject& message, ApplicationConstSharedPtr app); + + static bool VerifySoftButtonText(smart_objects::SmartObject& soft_button); + + static mobile_apis::Result::eType ProcessSoftButtons( + smart_objects::SmartObject& message_params, + ApplicationConstSharedPtr app); + + static bool PrintSmartObject(const smart_objects::SmartObject& object); + + template<typename From, typename To> + static To ConvertEnumAPINoCheck(const From& input) { + return static_cast<To>(input); + } + + private: + static smart_objects::SmartObject* CreateChangeRegistration( + int32_t function_id, int32_t language, uint32_t app_id); + static smart_objects::SmartObject* CreateGeneralVrCommand(); + static void SendRemoveCommandToHMI(int32_t function_id, int32_t command_id, + uint32_t app_id); + MessageHelper(); + + static const VehicleData vehicle_data_; + DISALLOW_COPY_AND_ASSIGN(MessageHelper); +}; + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MESSAGE_HELPER_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/mobile_command_factory.h b/SDL_Core/src/components/application_manager/include/application_manager/mobile_command_factory.h new file mode 100644 index 000000000..ecfe41f0a --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/mobile_command_factory.h @@ -0,0 +1,63 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MOBILE_COMMAND_FACTORY_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MOBILE_COMMAND_FACTORY_H_ + +#include "application_manager/commands/command.h" +#include "utils/macro.h" + +namespace application_manager { + +typedef utils::SharedPtr<commands::Command> CommandSharedPtr; + +/** + * @brief Factory class for command creation + **/ +class MobileCommandFactory { + public: + /** + * @brief Create command object and return pointer to it + * + * @param smartObject SmartObject shared pointer. + * @return Pointer to created command object. + **/ + static CommandSharedPtr CreateCommand(const MessageSharedPtr& message); + + private: + MobileCommandFactory(); + DISALLOW_COPY_AND_ASSIGN(MobileCommandFactory); +}; + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MOBILE_COMMAND_FACTORY_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/mobile_message_handler.h b/SDL_Core/src/components/application_manager/include/application_manager/mobile_message_handler.h new file mode 100644 index 000000000..5d7be9a34 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/mobile_message_handler.h @@ -0,0 +1,67 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MOBILE_MESSAGE_HANDLER_IMPL_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MOBILE_MESSAGE_HANDLER_IMPL_H_ + +#include "utils/macro.h" +#include "utils/logger.h" +#include "protocol_handler/raw_message.h" +#include "application_manager/message.h" + +namespace application_manager { +typedef utils::SharedPtr<application_manager::Message> MobileMessage; +class MobileMessageHandler { + public: + static application_manager::Message* HandleIncomingMessageProtocolV1( + const protocol_handler::RawMessagePtr& message); + + static application_manager::Message* HandleIncomingMessageProtocolV2( + const protocol_handler::RawMessagePtr& message); + + //! ------------------------------------------------------------- + + static protocol_handler::RawMessage* HandleOutgoingMessageProtocolV1( + const MobileMessage& message); + + static protocol_handler::RawMessage* HandleOutgoingMessageProtocolV2( + const MobileMessage& message); + + //! ------------------------------------------------------------- + private: + static log4cxx::LoggerPtr logger_; + + DISALLOW_COPY_AND_ASSIGN(MobileMessageHandler); +}; +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MOBILE_MESSAGE_HANDLER_IMPL_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/policies_manager/policies_manager.h b/SDL_Core/src/components/application_manager/include/application_manager/policies_manager/policies_manager.h new file mode 100644 index 000000000..e401bc7e3 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/policies_manager/policies_manager.h @@ -0,0 +1,73 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_POLICIES_MANAGER_POLICIES_MANAGER_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_POLICIES_MANAGER_POLICIES_MANAGER_H_ + +#include <map> +#include <vector> +#include <string> +#include <utility> + +#include "interfaces/MOBILE_API.h" + +#include "utils/logger.h" +#include "utils/macro.h" + +namespace application_manager { +namespace policies_manager { + +typedef mobile_apis::FunctionID::eType ItemName; +typedef std::vector<mobile_apis::HMILevel::eType> HmiLevels; +typedef std::pair<ItemName, HmiLevels> PoliciesItem; +typedef std::map<ItemName, HmiLevels> PoliciesItems; + +class PoliciesManager { + public: + PoliciesManager(); + ~PoliciesManager(); + + bool Init(); + bool IsValidHmiStatus(mobile_apis::FunctionID::eType function, + mobile_apis::HMILevel::eType status); + + private: + PoliciesItems items_; + static log4cxx::LoggerPtr logger_; + + DISALLOW_COPY_AND_ASSIGN(PoliciesManager); +}; + +} // namespace policies_manager +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_POLICIES_MANAGER_POLICIES_MANAGER_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/request_controller.h b/SDL_Core/src/components/application_manager/include/application_manager/request_controller.h new file mode 100644 index 000000000..b05e372a0 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/request_controller.h @@ -0,0 +1,148 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_REQUEST_CONTROLLER_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_REQUEST_CONTROLLER_H_ + +#include <list> +#include "utils/lock.h" +#include "interfaces/MOBILE_API.h" +#include "request_watchdog/request_watchdog.h" +#include "request_watchdog/watchdog_subscriber.h" +#include "application_manager/commands/command.h" + +namespace application_manager { + +namespace request_controller { + +/* + * @brief RequestController class is used to control currently active mobile + * requests. + */ +class RequestController: public request_watchdog::WatchdogSubscriber { + public: + + // Data types + + /* + * @brief Typedef for active mobile request + * + */ + typedef utils::SharedPtr<commands::Command> Request; + + /** + * @brief Synchronizing state identifiers + */ + enum TResult + { + SUCCESS = 0, + TOO_MANY_REQUESTS, + TOO_MANY_PENDING_REQUESTS, + NONE_HMI_LEVEL_MANY_REQUESTS + }; + + // Methods + /* + * @brief Class constructor + * + */ + RequestController(); + + /* + * @brief Class destructor + * + */ + virtual ~RequestController(); + + /* + * @brief Check if max request amount wasn't exceed and adds request to queue. + * + * @param request Active mobile request + * @param hmi_level Current application hmi_level + * + * @return Result code + * + */ + TResult addRequest(const Request& request, + const mobile_apis::HMILevel::eType& hmi_level); + + /* + * @brief Removes request from queue + * + * @param mobile_corellation_id Active mobile request correlation ID + * + */ + void terminateRequest(const uint32_t& mobile_correlation_id); + + /* + * @brief Removes all requests from queue for specified application + * + * @param app_id Mobile application ID + * + */ + void terminateAppRequests(const uint32_t& app_id); + + /** + * @ Updates request timeout + * + * @param connection_key Connection key of application + * @param mobile_correlation_id Correlation ID of the mobile request + * @param new_timeout_value New timeout to be set + */ + void updateRequestTimeout(const uint32_t& connection_key, + const uint32_t& mobile_correlation_id, + const uint32_t& new_timeout); + + /* + * @brief Notify subscriber that expired entry should be removed + * using Watchdog::removeRequest(int32_t connection_key, int32_t correlation_id) + * + * @param RequestInfo Request related information + */ + void onTimeoutExpired(const request_watchdog::RequestInfo& info); + + protected: + + private: + + std::list<Request> request_list_; + sync_primitives::Lock request_list_lock_; + request_watchdog::Watchdog* watchdog_; + + DISALLOW_COPY_AND_ASSIGN(RequestController); +}; + +} // namespace request_controller + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_REQUEST_CONTROLLER_H_ diff --git a/SDL_Core/src/components/application_manager/include/application_manager/resume_ctrl.h b/SDL_Core/src/components/application_manager/include/application_manager/resume_ctrl.h new file mode 100644 index 000000000..2142d05cb --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/resume_ctrl.h @@ -0,0 +1,221 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_RESUME_CTRL_H +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_RESUME_CTRL_H + +#include <cstdint> +#include <vector> +#include <map> +#include <set> +#include <list> + +#include "json/json.h" +#include "interfaces/HMI_API.h" +#include "interfaces/HMI_API_schema.h" +#include "interfaces/MOBILE_API_schema.h" +#include "connection_handler/connection_handler_observer.h" +#include "connection_handler/device.h" +#include "application_manager/event_engine/event_observer.h" +#include "smart_objects/smart_object.h" +#include "application_manager/application.h" + +namespace application_manager { + + +namespace smart_objects = NsSmartDeviceLink::NsSmartObjects; + +class ApplicationManagerImpl; +class Application; +class ResumeCtrl: public event_engine::EventObserver { + + mutable sync_primitives::Lock queue_lock_; + + public: + + /** + * @brief Constructor + * @param app_mngr ApplicationManager pointer + */ + explicit ResumeCtrl(ApplicationManagerImpl* app_mngr); + + /** + * @brief Event, that raised if application get resumption response from HMI + * @param event : event object, that contains smart_object with HMI message + */ + virtual void on_event(const event_engine::Event& event); + + /** + * @brief Save all applications info to the file system + */ + void SaveAllApplications(); + + /** + * @brief Save application persistent info for future resuming + * @param application is application witch need to be saved + * In case of IGN_OFF or Ctl-C or MEATER_RESSET this info will save to to file system + */ + void SaveApplication(ApplicationConstSharedPtr application); + + /** + * @brief Load unregistered applications info from the file system + * You can use this function only if connection handler is ready + */ + void LoadApplications(); + + /** + * @brief Set application HMI Level as saved + * @param application is application witch HMI Level is need to restore + * @return true if success, otherwise return false + */ + bool RestoreApplicationHMILevel(ApplicationSharedPtr application); + + /** + * @brief Set application HMI Level as saved + * @param application is application witch HMI Level is need to restore + * @return true if success, otherwise return false + */ + bool RestoreApplicationData(ApplicationSharedPtr application); + + /** + * @brief Check if Resume controller have saved instance of application + * @param application is application witch need to be checked + * @return true if exist, false otherwise + */ + bool ApplicationIsSaved(ApplicationConstSharedPtr application); + + /** + * @brief Remove application from list of saved applications + * @param application is application witch need to be removed + * @return return true, if success, otherwise return false + */ + bool RemoveApplicationFromSaved(ApplicationConstSharedPtr application); + + /** + * @brief Save application info to FileSystem + */ + void SavetoFileSystem(); + + /** + * @brief Start timer for resumption applications + * @param application that is need to be restored + * @return true if it was saved, otherwise return false + */ + bool StartResumption(ApplicationSharedPtr application, uint32_t hash); + + /** + * @brief Check application hash + * @param application that is need to be restored + * @return true if it was saved, otherwise return false + */ + bool CheckApplicationHash(uint32_t app_id, uint32_t hash); + + /** + * @brief Timer callback function + * + */ + void onTimer(); + + private: + + timer::TimerThread<ResumeCtrl> timer_; + /** + * @brief This struct need to map + * timestamp and application from correlationID + */ + struct ResumingApp { + uint32_t old_session_key; // session key is the same as app_id + ApplicationSharedPtr app; + }; + + static log4cxx::LoggerPtr logger_; + + /** + * @brief Time step to check resumption TIME_OUT + */ + static const uint32_t kTimeStep = 3; + + /** + *@brief Data of applications, that whait for resuming + */ + std::vector<Json::Value> saved_applications_; + + typedef std::pair<uint32_t, uint32_t> application_timestamp; + struct TimeStampComparator { + bool operator() (const application_timestamp& lhs, + const application_timestamp& rhs) const{ + return lhs.second < rhs.second; + } + }; + + /** + *@brief Mapping applications to time_stamps + * wait for timer to resume HMI Level + * + */ + std::set<application_timestamp, TimeStampComparator> waiting_for_timer_; + + + ApplicationManagerImpl* app_mngr_; + + /** + * @brief times of IGN_OFF that zombie application have to be saved. + */ + static const uint32_t kApplicationLifes = 3; + + + /** + * @brief Check if Resume controller have saved instance of application + * @param app_id - application id witch is the same as session_key or connection_key + * @return true if exist, false otherwise + */ + bool ApplicationIsSaved(const uint32_t app_id); + + Json::Value GetApplicationCommands(const uint32_t app_id); + Json::Value GetApplicationInteractionChoiseSets(const uint32_t app_id); + Json::Value GetApplicationGlobalProperties(const uint32_t app_id); + Json::Value GetApplicationSubscriptions(const uint32_t app_id); + Json::Value GetApplicationFiles(const uint32_t app_id); + + Json::Value JsonFromSO(const NsSmartDeviceLink::NsSmartObjects::SmartObject *so); + + void SendHMIRequest(const hmi_apis::FunctionID::eType& function_id, + const smart_objects::SmartObject* msg_params = NULL, + bool use_events = false); + + bool ProcessHMIRequest( + NsSmartDeviceLink::NsSmartObjects::SmartObject* request = NULL, + bool use_events = false); +}; + +} // namespace application_manager +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_RESUME_CTRL_H diff --git a/SDL_Core/src/components/application_manager/include/application_manager/smart_object_keys.h b/SDL_Core/src/components/application_manager/include/application_manager/smart_object_keys.h new file mode 100644 index 000000000..e76bbe0d0 --- /dev/null +++ b/SDL_Core/src/components/application_manager/include/application_manager/smart_object_keys.h @@ -0,0 +1,312 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_SMART_OBJECT_KEYS_H_ +#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_SMART_OBJECT_KEYS_H_ + +namespace application_manager { + +namespace strings { + +const char params[] = "params"; +const char message_type[] = "message_type"; +const char correlation_id[] = "correlation_id"; +const char function_id[] = "function_id"; +const char protocol_version[] = "protocol_version"; +const char protocol_type[] = "protocol_type"; +const char connection_key[] = "connection_key"; +const char error[] = "error"; +const char error_msg[] = "message"; + +const char msg_params[] = "msg_params"; +const char info[] = "info"; +const char app_id[] = "appID"; +const char url[] = "url"; +const char cmd_icon[] = "cmdIcon"; +const char result_code[] = "resultCode"; +const char success[] = "success"; +const char sync_msg_version[] = "syncMsgVersion"; +const char major_version[] = "majorVersion"; +const char minor_version[] = "minorVersion"; +const char app_name[] = "appName"; +const char ngn_media_screen_app_name[] = "ngnMediaScreenAppName"; +const char vr_synonyms[] = "vrSynonyms"; +const char uses_vehicle_data[] = "usesVehicleData"; +const char is_media_application[] = "isMediaApplication"; +const char language_desired[] = "languageDesired"; +const char auto_activated_id[] = "autoActivateID"; +const char app_type[] = "appType"; +const char app_hmi_type[] = "appHMIType"; +const char tts_name[] = "ttsName"; +const char binary_data[] = "binary_data"; +const char timeout_prompt[] = "timeoutPrompt"; +const char timeout[] = "timeout"; +const char vr_help_title[] = "vrHelpTitle"; +const char vr_help[] = "vrHelp"; +const char main_field_1[] = "mainField1"; +const char main_field_2[] = "mainField2"; +const char main_field_3[] = "mainField3"; +const char main_field_4[] = "mainField4"; +const char eta[] = "eta"; +const char time_to_destination[] = "timeToDestination"; +const char total_distance[] = "totalDistance"; +const char alignment[] = "alignment"; +const char graphic[] = "graphic"; +const char secondary_graphic[] = "secondaryGraphic"; +const char status_bar[] = "statusBar"; +const char media_clock[] = "mediaClock"; +const char media_track[] = "mediaTrack"; +const char properties[] = "properties"; +const char cmd_id[] = "cmdID"; +const char menu_params[] = "menuParams"; +const char menu_title[] = "menuTitle"; +const char menu_icon[] = "menuIcon"; +const char keyboard_properties[] = "keyboardProperties"; +const char vr_commands[] = "vrCommands"; +const char position[] = "position"; +const char num_ticks[] = "numTicks"; +const char slider_footer[] = "sliderFooter"; +const char menu_id[] = "menuID"; +const char menu_name[] = "menuName"; +const char interaction_choice_set_id[] = "interactionChoiceSetID"; +const char interaction_choice_set_id_list[] = "interactionChoiceSetIDList"; +const char choice_set[] = "choiceSet"; +const char choice_id[] = "choiceID"; +const char navigation_text_1[] = "navigationText1"; +const char navigation_text_2[] = "navigationText2"; +const char alert_text1[] = "alertText1"; +const char alert_text2[] = "alertText2"; +const char alert_text3[] = "alertText3"; +const char tts_chunks[] = "ttsChunks"; +const char initial_prompt[] = "initialPrompt"; +const char initial_text[] = "initialText"; +const char duration[] = "duration"; +const char progress_indicator[] = "progressIndicator"; +const char play_tone[] = "playTone"; +const char soft_buttons[] = "softButtons"; +const char custom_presets[] = "customPresets"; +const char audio_pass_display_text1[] = "audioPassThruDisplayText1"; +const char audio_pass_display_text2[] = "audioPassThruDisplayText2"; +const char max_duration[] = "maxDuration"; +const char sampling_rate[] = "samplingRate"; +const char bits_per_sample[] = "bitsPerSample"; +const char audio_type[] = "audioType"; +const char button_name[] = "buttonName"; +const char button_event_mode[] = "buttonEventMode"; +const char button_press_mode[] = "buttonPressMode"; +const char custom_button_id[] = "customButtonID"; +const char data_type[] = "dataType"; +const char turn_list[] = "turnList"; +const char turn_icon[] = "turnIcon"; +const char next_turn_icon[] = "nextTurnIcon"; +const char value[] = "value"; +const char hmi_display_language[] = "hmiDisplayLanguage"; +const char language[] = "language"; +const char data[] = "data"; +const char start_time[] = "startTime"; +const char end_time[] = "endTime"; +const char hours[] = "hours"; +const char minutes[] = "minutes"; +const char seconds [] = "seconds"; +const char update_mode[] = "updateMode"; +const char trigger_source[] = "triggerSource"; +const char hmi_level[] = "hmiLevel"; +const char audio_streaming_state[] = "audioStreamingState"; +const char system_context[] = "systemContext"; +const char speech_capabilities[] = "speechCapabilities"; +const char vr_capabilities[] = "vrCapabilities"; +const char audio_pass_thru_capabilities[] = "audioPassThruCapabilities"; +// PutFile +const char sync_file_name[] = "syncFileName"; +const char file_type[] = "fileType"; +const char persistent_file[] = "persistentFile"; +const char file_data[] = "fileData"; +const char space_available[] = "spaceAvailable"; +const char image_type[] = "imageType"; +const char image[] = "image"; +const char type[] = "type"; +const char system_file[] = "systemFile"; +const char offset[] = "offset"; +const char length[] = "length"; + +const char filenames[] = "filenames"; + +const char hmi_display_language_desired[] = "hmiDisplayLanguageDesired"; +const char ecu_name[] = "ecuName"; +const char dtc_mask[] = "dtcMask"; +const char did_location[] = "didLocation"; +const char app_list[] = "appList"; +const char device_list[] = "deviceList"; +const char device_info[] = "deviceInfo"; +const char name[] = "name"; +const char id[] = "id"; +const char application[] = "application"; +const char icon[] = "icon"; +const char device_name[] = "deviceName"; +const char reason[] = "reason"; +const char available[] = "available"; +const char text[] = "text"; + +// vehicle info +const char gps[] = "gps"; +const char speed[] = "speed"; +const char rpm[] = "rpm"; +const char fuel_level[] = "fuelLevel"; +const char fuel_level_state[] = "fuelLevel_State"; +const char instant_fuel_consumption[] = "instantFuelConsumption"; +const char external_temp[] = "externalTemperature"; +const char vin[] = "vin"; +const char prndl[] = "prndl"; +const char tire_pressure[] = "tirePressure"; +const char odometer[] = "odometer"; +const char belt_status[] = "beltStatus"; +const char body_information[] = "bodyInformation"; +const char device_status[] = "deviceStatus"; +const char driver_braking[] = "driverBraking"; +const char wiper_status[] = "wiperStatus"; +const char head_lamp_status[] = "headLampStatus"; +const char engine_torque[] = "engineTorque"; +const char acc_pedal_pos[] = "accPedalPosition"; +const char steering_wheel_angle[] = "steeringWheelAngle"; +const char e_call_info[] = "eCallInfo"; +const char airbag_status[] = "airbagStatus"; +const char emergency_event[] = "emergencyEvent"; +const char cluster_mode_status[] = "clusterModeStatus"; +const char my_key[] = "myKey"; +const char help_prompt[] = "helpPrompt"; +const char scroll_message_body[] = "scrollableMessageBody"; +const char data_result[] = "dataResult"; +const char dtc_list[] = "dtcList"; +const char interaction_mode[] = "interactionMode"; +const char slider_position[] = "sliderPosition"; +const char system_action[] = "systemAction"; +const char prerecorded_speech[] = "prerecordedSpeech"; +const char supported_diag_modes[] = "supportedDiagModes"; + +//resuming +const char application_commands[] = "applicationCommands"; +const char application_choise_sets[] = "applicationChoiceSets"; +const char application_global_properties[] = "globalProperties"; +const char application_vehicle_info[] = "vehicleInfo"; +const char application_buttons[] = "buttons"; +const char application_subscribtions[] = "subscribtions"; +const char application_files[] = "applicationFiles"; +const char resumption[] = "resumption"; +const char ign_off_count[] = "ign_off_count"; +const char connection_info[] = "connection_info"; +const char is_download_complete[] = "is_download_complete"; + +const char hash_id[] = "hashID"; +const char time_stamp[] = "timeStamp"; +const char manual_text_entry[] = "manualTextEntry"; +} // namespace strings + +namespace mobile_notification { +const char state[] = "state"; +const char syncp_timeout[] = "Timeout"; +} // namespace mobile_notification + +namespace hmi_request { +const char parent_id[] = "parentID"; +const char field_name[] = "fieldName"; +const char field_text[] = "fieldText"; +const char alert_strings[] = "alertStrings"; +const char duration[] = "duration"; +const char soft_buttons[] = "softButtons"; +const char tts_chunks[] = "ttsChunks"; +const char audio_pass_display_texts[] = "audioPassThruDisplayTexts"; +const char max_duration[] = "maxDuration"; +const char reason[] = "reason"; +const char message_text[] = "messageText"; +const char initial_text[] = "initialText"; +const char navi_texts[] = "navigationTexts"; +const char navi_text[] = "navigationText"; +const char show_strings[] = "showStrings"; +const char interaction_layout[] = "interactionLayout"; +const char menu_title[] = "menuTitle"; +const char menu_icon[] = "menuIcon"; +const char keyboard_properties[] = "keyboardProperties"; +const char method_name[] = "methodName"; +const char keyboard_layout[] = "keyboardLayout"; +const char send_dynamic_entry[] = "sendDynamicEntry"; +const char limited_character_list[] = "limitedCharacterList"; +const char auto_complete_text[] = "autoCompleteText"; +} // namespace hmi_request + +namespace hmi_response { +const char code[] = "code"; +const char message[] = "message"; +const char method[] = "method"; +const char try_again_time[] = "tryAgainTime"; +const char custom_button_id[] = "customButtonID"; +const char button_name[] = "name"; +const char button_mode[] = "mode"; +const char attenuated_supported[] = "attenuatedSupported"; +const char languages[] = "languages"; +const char language[] = "language"; +const char display_capabilities[] = "displayCapabilities"; +const char hmi_zone_capabilities[] = "hmiZoneCapabilities"; +const char soft_button_capabilities[] = "softButtonCapabilities"; +const char image_supported[] = "imageSupported"; +const char button_capabilities[] = "buttonCapabilities"; +const char capabilities[] = "capabilities"; +const char speech_capabilities[] = "speechCapabilities"; +const char prerecorded_speech_capabilities[] = "prerecordedSpeechCapabilities"; +const char preset_bank_capabilities[] = "presetBankCapabilities"; +const char allowed[] = "allowed"; +const char vehicle_type[] = "vehicleType"; +const char did_result[] = "didResult"; +const char result_code[] = "resultCode"; +const char dtc[] = "dtc"; +const char ecu_header[] = "ecuHeader"; +const char image_capabilities[] = "imageCapabilities"; +const char display_type[] = "displayType"; +const char text_fields[] = "textFields"; +const char media_clock_formats[] = "mediaClockFormats"; +const char graphic_supported[] = "graphicSupported"; +const char templates_available[] = "templatesAvailable"; +const char screen_params[] = "screenParams"; +const char num_custom_presets_available[] = "numCustomPresetsAvailable"; +} // namespace hmi_response + +namespace hmi_notification { +const char prndl[] = "prndl"; +const char file_name[] = "file_name"; +const char system_context[] = "systemContext"; +const char state[] = "state"; +const char result[] = "result"; + +} // namespace hmi_notification + +} // namespace application_manager + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_SMART_OBJECT_KEYS_H_ diff --git a/SDL_Core/src/components/application_manager/src/application_data_impl.cc b/SDL_Core/src/components/application_manager/src/application_data_impl.cc new file mode 100644 index 000000000..5b5155c02 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/application_data_impl.cc @@ -0,0 +1,477 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/application_data_impl.h" +#include "application_manager/smart_object_keys.h" + +namespace application_manager { + +InitialApplicationDataImpl::InitialApplicationDataImpl() + : app_types_(NULL), + vr_synonyms_(NULL), + mobile_app_id_(NULL), + tts_name_(NULL), + ngn_media_screen_name_(NULL), + language_(mobile_api::Language::INVALID_ENUM), + ui_language_(mobile_api::Language::INVALID_ENUM) { +} + +InitialApplicationDataImpl::~InitialApplicationDataImpl() { + if (app_types_) { + delete app_types_; + app_types_ = NULL; + } + + if (vr_synonyms_) { + delete vr_synonyms_; + vr_synonyms_ = NULL; + } + + if (mobile_app_id_) { + delete mobile_app_id_; + mobile_app_id_ = NULL; + } + + if (tts_name_) { + delete tts_name_; + tts_name_ = NULL; + } + + if (ngn_media_screen_name_) { + delete ngn_media_screen_name_; + ngn_media_screen_name_ = NULL; + } +} + +const smart_objects::SmartObject* +InitialApplicationDataImpl::app_types() const { + return app_types_; +} + +const smart_objects::SmartObject* +InitialApplicationDataImpl::vr_synonyms() const { + return vr_synonyms_; +} + +const smart_objects::SmartObject* +InitialApplicationDataImpl::mobile_app_id() const { + return mobile_app_id_; +} + +const smart_objects::SmartObject* InitialApplicationDataImpl::tts_name() const { + return tts_name_; +} + +const smart_objects::SmartObject* +InitialApplicationDataImpl::ngn_media_screen_name() const { + return ngn_media_screen_name_; +} + +const mobile_api::Language::eType& +InitialApplicationDataImpl::language() const { + return language_; +} + +const mobile_api::Language::eType& +InitialApplicationDataImpl::ui_language() const { + return ui_language_; +} + +void InitialApplicationDataImpl::set_app_types( + const smart_objects::SmartObject& app_types) { + if (app_types_) { + delete app_types_; + } + + app_types_ = new smart_objects::SmartObject(app_types); +} + +void InitialApplicationDataImpl::set_vr_synonyms( + const smart_objects::SmartObject& vr_synonyms) { + if (vr_synonyms_) { + delete vr_synonyms_; + } + vr_synonyms_ = new smart_objects::SmartObject(vr_synonyms); +} + +void InitialApplicationDataImpl::set_mobile_app_id( + const smart_objects::SmartObject& mobile_app_id) { + if (mobile_app_id_) { + delete mobile_app_id_; + } + mobile_app_id_ = new smart_objects::SmartObject(mobile_app_id); +} + +void InitialApplicationDataImpl::set_tts_name( + const smart_objects::SmartObject& tts_name) { + if (tts_name_) { + delete tts_name_; + } + + tts_name_ = new smart_objects::SmartObject(tts_name); +} + +void InitialApplicationDataImpl::set_ngn_media_screen_name( + const smart_objects::SmartObject& ngn_name) { + if (ngn_media_screen_name_) { + delete ngn_media_screen_name_; + } + + ngn_media_screen_name_ = new smart_objects::SmartObject(ngn_name); +} + +void InitialApplicationDataImpl::set_language( + const mobile_api::Language::eType& language) { + language_ = language; +} + +void InitialApplicationDataImpl::set_ui_language( + const mobile_api::Language::eType& ui_language) { + ui_language_ = ui_language; +} + +DynamicApplicationDataImpl::DynamicApplicationDataImpl() + : help_prompt_(NULL), + timeout_prompt_(NULL), + vr_help_title_(NULL), + vr_help_(NULL), + tbt_state_(mobile_api::TBTState::INVALID_ENUM), + show_command_(NULL), + tbt_show_command_(NULL), + commands_(), + sub_menu_(), + choice_set_map_(), + performinteraction_choice_set_map_(), + is_perform_interaction_active_(false), + perform_interaction_ui_corrid_(0), + is_reset_global_properties_active_(false), + perform_interaction_mode_(-1) { +} + +DynamicApplicationDataImpl::~DynamicApplicationDataImpl() { + if (help_prompt_) { + delete help_prompt_; + help_prompt_ = NULL; + } + + if (timeout_prompt_) { + delete timeout_prompt_; + timeout_prompt_ = NULL; + } + + if (vr_help_title_) { + delete vr_help_title_; + vr_help_title_ = NULL; + } + + if (vr_help_) { + delete vr_help_; + vr_help_ = NULL; + } + + if (show_command_) { + delete show_command_; + show_command_ = NULL; + } + + if (tbt_show_command_) { + delete tbt_show_command_; + tbt_show_command_ = NULL; + } + + for (CommandsMap::iterator command_it = commands_.begin(); + commands_.end() != command_it; ++command_it) { + delete command_it->second; + } + commands_.clear(); + + for (SubMenuMap::iterator sub_menu_it = sub_menu_.begin(); + sub_menu_.end() != sub_menu_it; ++sub_menu_it) { + delete sub_menu_it->second; + } + sub_menu_.clear(); + + PerformChoiceSetMap::iterator it = performinteraction_choice_set_map_.begin(); + for (; performinteraction_choice_set_map_.end() != it; ++it) { + delete it->second; + } + performinteraction_choice_set_map_.clear(); +} + +const smart_objects::SmartObject* +DynamicApplicationDataImpl::help_prompt() const { + return help_prompt_; +} + +const smart_objects::SmartObject* +DynamicApplicationDataImpl::timeout_prompt() const { + return timeout_prompt_; +} + +const smart_objects::SmartObject* +DynamicApplicationDataImpl::vr_help_title() const { + return vr_help_title_; +} + +const smart_objects::SmartObject* +DynamicApplicationDataImpl::vr_help() const { + return vr_help_; +} + +const mobile_api::TBTState::eType& +DynamicApplicationDataImpl::tbt_state() const { + return tbt_state_; +} + +const smart_objects::SmartObject* +DynamicApplicationDataImpl::show_command() const { + return show_command_; +} + +const smart_objects::SmartObject* +DynamicApplicationDataImpl::tbt_show_command() const { + return tbt_show_command_; +} + +const NsSmartDeviceLink::NsSmartObjects::SmartObject *DynamicApplicationDataImpl::keyboard_props() const { + return keyboard_props_; +} + +void DynamicApplicationDataImpl::set_help_prompt( + const smart_objects::SmartObject& help_prompt) { + if (help_prompt_) { + delete help_prompt_; + } + help_prompt_ = new smart_objects::SmartObject(help_prompt); +} + +void DynamicApplicationDataImpl::set_timeout_prompt( + const smart_objects::SmartObject& timeout_prompt) { + if (timeout_prompt_) { + delete timeout_prompt_; + } + timeout_prompt_ = new smart_objects::SmartObject(timeout_prompt); +} + +void DynamicApplicationDataImpl::set_vr_help_title( + const smart_objects::SmartObject& vr_help_title) { + if (vr_help_title_) { + delete vr_help_title_; + } + vr_help_title_ = new smart_objects::SmartObject(vr_help_title); +} + +void DynamicApplicationDataImpl::reset_vr_help_title() { + if (vr_help_title_) { + delete vr_help_title_; + vr_help_title_ = NULL; + } +} + +void DynamicApplicationDataImpl::set_vr_help( + const smart_objects::SmartObject& vr_help) { + if (vr_help_) { + delete vr_help_; + } + vr_help_ = new smart_objects::SmartObject(vr_help); +} + +void DynamicApplicationDataImpl::reset_vr_help() { + if (vr_help_) { + delete vr_help_; + } + vr_help_ = NULL; +} + +void DynamicApplicationDataImpl::set_tbt_state( + const mobile_api::TBTState::eType& tbt_state) { + tbt_state_ = tbt_state; +} + +void DynamicApplicationDataImpl::set_show_command( + const smart_objects::SmartObject& show_command) { + if (show_command_) { + delete show_command_; + } + show_command_ = new smart_objects::SmartObject(show_command); +} + +void DynamicApplicationDataImpl::set_tbt_show_command( + const smart_objects::SmartObject& tbt_show) { + if (tbt_show_command_) { + delete tbt_show_command_; + } + tbt_show_command_ = new smart_objects::SmartObject(tbt_show); +} + +void DynamicApplicationDataImpl::set_keyboard_props( + const smart_objects::SmartObject &keyboard_props) { + if (keyboard_props_) { + delete keyboard_props_; + } + keyboard_props_ = new smart_objects::SmartObject(keyboard_props); +} + + +void DynamicApplicationDataImpl::AddCommand( + uint32_t cmd_id, const smart_objects::SmartObject& command) { + commands_[cmd_id] = new smart_objects::SmartObject(command); +} + +void DynamicApplicationDataImpl::RemoveCommand(uint32_t cmd_id) { + CommandsMap::iterator it = commands_.find(cmd_id); + + if (commands_.end() != it) { + delete it->second; + commands_.erase(it); + } +} + +smart_objects::SmartObject* DynamicApplicationDataImpl::FindCommand( + uint32_t cmd_id) { + CommandsMap::const_iterator it = commands_.find(cmd_id); + if (it != commands_.end()) { + return it->second; + } + + return NULL; +} + +// TODO(VS): Create common functions for processing collections +void DynamicApplicationDataImpl::AddSubMenu( + uint32_t menu_id, const smart_objects::SmartObject& menu) { + sub_menu_[menu_id] = new smart_objects::SmartObject(menu); +} + +void DynamicApplicationDataImpl::RemoveSubMenu(uint32_t menu_id) { + SubMenuMap::iterator it = sub_menu_.find(menu_id); + + if (sub_menu_.end() != it) { + delete it->second; + sub_menu_.erase(menu_id); + } +} + +smart_objects::SmartObject* DynamicApplicationDataImpl::FindSubMenu( + uint32_t menu_id) const { + SubMenuMap::const_iterator it = sub_menu_.find(menu_id); + if (it != sub_menu_.end()) { + return it->second; + } + + return NULL; +} + +bool DynamicApplicationDataImpl::IsSubMenuNameAlreadyExist( + const std::string& name) { + for (SubMenuMap::iterator it = sub_menu_.begin(); + sub_menu_.end() != it; + ++it) { + smart_objects::SmartObject* menu = it->second; + if ((*menu)[strings::menu_name] == name) { + return true; + } + } + return false; +} + +void DynamicApplicationDataImpl::AddChoiceSet( + uint32_t choice_set_id, const smart_objects::SmartObject& choice_set) { + choice_set_map_[choice_set_id] = new smart_objects::SmartObject(choice_set); +} + +void DynamicApplicationDataImpl::RemoveChoiceSet(uint32_t choice_set_id) { + ChoiceSetMap::iterator it = choice_set_map_.find(choice_set_id); + + if (choice_set_map_.end() != it) { + delete it->second; + choice_set_map_.erase(choice_set_id); + } +} + +smart_objects::SmartObject* DynamicApplicationDataImpl::FindChoiceSet( + uint32_t choice_set_id) { + ChoiceSetMap::const_iterator it = choice_set_map_.find(choice_set_id); + if (it != choice_set_map_.end()) { + return it->second; + } + + return NULL; +} + +void DynamicApplicationDataImpl::AddPerformInteractionChoiceSet( + uint32_t choice_set_id, const smart_objects::SmartObject& vr_commands) { + performinteraction_choice_set_map_[choice_set_id] = + new smart_objects::SmartObject(vr_commands); +} + +void DynamicApplicationDataImpl::DeletePerformInteractionChoiceSetMap() { + PerformChoiceSetMap::iterator it = performinteraction_choice_set_map_.begin(); + for (; performinteraction_choice_set_map_.end() != it; ++it) { + delete it->second; + } + performinteraction_choice_set_map_.clear(); +} + +smart_objects::SmartObject* +DynamicApplicationDataImpl::FindPerformInteractionChoiceSet( + uint32_t choice_set_id) const { + PerformChoiceSetMap::const_iterator it = performinteraction_choice_set_map_ + .find(choice_set_id); + + if (it != performinteraction_choice_set_map_.end()) { + return it->second; + } + + return NULL; +} + +void DynamicApplicationDataImpl::set_perform_interaction_active( + uint32_t active) { + is_perform_interaction_active_ = active; +} + +void DynamicApplicationDataImpl::set_perform_interaction_ui_corrid( + uint32_t corr_id) { + perform_interaction_ui_corrid_ = corr_id; +} + +void DynamicApplicationDataImpl::set_reset_global_properties_active( + bool active) { + is_reset_global_properties_active_ = active; +} + +void DynamicApplicationDataImpl::set_perform_interaction_mode(int32_t mode) { + perform_interaction_mode_ = mode; +} + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/application_impl.cc b/SDL_Core/src/components/application_manager/src/application_impl.cc new file mode 100644 index 000000000..198e1a3fb --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/application_impl.cc @@ -0,0 +1,359 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include <string> +#include <stdlib.h> +#include "application_manager/application_impl.h" +#include "utils/file_system.h" +#include "application_manager/message_helper.h" + +namespace { +log4cxx::LoggerPtr g_logger = log4cxx::Logger::getLogger("ApplicationManager"); +} + + + +namespace application_manager { + +ApplicationImpl::ApplicationImpl(uint32_t application_id) + : app_id_(application_id), + active_message_(NULL), + is_media_(false), + hmi_supports_navi_streaming_(false), + allowed_support_navigation_(false), + hmi_level_(mobile_api::HMILevel::HMI_NONE), + put_file_in_none_count_(0), + delete_file_in_none_count_(0), + list_files_in_none_count_(0), + system_context_(mobile_api::SystemContext::SYSCTXT_MAIN), + audio_streaming_state_(mobile_api::AudioStreamingState::NOT_AUDIBLE), + is_app_allowed_(true), + has_been_activated_(false), + tts_speak_state_(false), + device_(0) { + srand(time(NULL)); +} + +ApplicationImpl::~ApplicationImpl() { + // TODO(AK): check if this is correct assimption + if (active_message_) { + delete active_message_; + active_message_ = NULL; + } + + subscribed_buttons_.clear(); + subscribed_vehicle_info_.clear(); + + CleanupFiles(); +} + +void ApplicationImpl::CloseActiveMessage() { + delete active_message_; + active_message_ = NULL; +} + +bool ApplicationImpl::IsFullscreen() const { + return mobile_api::HMILevel::HMI_FULL == hmi_level_; +} + +bool ApplicationImpl::MakeFullscreen() { + hmi_level_ = mobile_api::HMILevel::HMI_FULL; + if (is_media_ && !tts_speak_state_) { + audio_streaming_state_ = mobile_api::AudioStreamingState::AUDIBLE; + } + system_context_ = mobile_api::SystemContext::SYSCTXT_MAIN; + if (!has_been_activated_) { + has_been_activated_ = true; + } + return true; +} + +bool ApplicationImpl::IsAudible() const { + return mobile_api::HMILevel::HMI_FULL == hmi_level_ + || mobile_api::HMILevel::HMI_LIMITED == hmi_level_; +} + +void ApplicationImpl::MakeNotAudible() { + hmi_level_ = mobile_api::HMILevel::HMI_BACKGROUND; + audio_streaming_state_ = mobile_api::AudioStreamingState::NOT_AUDIBLE; +} + +bool ApplicationImpl::allowed_support_navigation() const { + return allowed_support_navigation_; +} + +void ApplicationImpl::set_allowed_support_navigation(bool allow) { + allowed_support_navigation_ = allow; +} + +const smart_objects::SmartObject* ApplicationImpl::active_message() const { + return active_message_; +} + +const Version& ApplicationImpl::version() const { + return version_; +} + +const std::string& ApplicationImpl::name() const { + return app_name_; +} + +bool ApplicationImpl::is_media_application() const { + return is_media_; +} + +const mobile_api::HMILevel::eType& ApplicationImpl::hmi_level() const { + return hmi_level_; +} + +const uint32_t ApplicationImpl::put_file_in_none_count() const { + return put_file_in_none_count_; +} + +const uint32_t ApplicationImpl::delete_file_in_none_count() const { + return delete_file_in_none_count_; +} + +const uint32_t ApplicationImpl::list_files_in_none_count() const { + return list_files_in_none_count_; +} + +const mobile_api::SystemContext::eType& +ApplicationImpl::system_context() const { + return system_context_; +} + +const std::string& ApplicationImpl::app_icon_path() const { + return app_icon_path_; +} + +connection_handler::DeviceHandle ApplicationImpl::device() const { + return device_; +} + +void ApplicationImpl::set_version(const Version& ver) { + version_ = ver; +} + +void ApplicationImpl::set_name(const std::string& name) { + app_name_ = name; +} + +void ApplicationImpl::set_is_media_application(bool is_media) { + is_media_ = is_media; + // Audio streaming state for non-media application can not be different + // from NOT_AUDIBLE + if (!is_media) + set_audio_streaming_state(mobile_api::AudioStreamingState::NOT_AUDIBLE); +} + +void ApplicationImpl::set_tts_speak_state(bool state_tts_speak) { + tts_speak_state_ = state_tts_speak; +} + +void ApplicationImpl::set_hmi_level( + const mobile_api::HMILevel::eType& hmi_level) { + if (mobile_api::HMILevel::HMI_NONE != hmi_level_ && + mobile_api::HMILevel::HMI_NONE == hmi_level) { + put_file_in_none_count_ = 0; + delete_file_in_none_count_ = 0; + list_files_in_none_count_ = 0; + } + + hmi_level_ = hmi_level; +} + +void ApplicationImpl::set_hmi_supports_navi_streaming(const bool& supports) { + hmi_supports_navi_streaming_ = supports; +} + +bool ApplicationImpl::hmi_supports_navi_streaming() const { + return hmi_supports_navi_streaming_; +} + +void ApplicationImpl::increment_put_file_in_none_count() { + ++put_file_in_none_count_; +} + +void ApplicationImpl::increment_delete_file_in_none_count() { + ++delete_file_in_none_count_; +} + +void ApplicationImpl::increment_list_files_in_none_count() { + ++list_files_in_none_count_; +} + +void ApplicationImpl::set_system_context( + const mobile_api::SystemContext::eType& system_context) { + system_context_ = system_context; +} + +void ApplicationImpl::set_audio_streaming_state( + const mobile_api::AudioStreamingState::eType& state) { + if (!is_media_application() + && state != mobile_api::AudioStreamingState::NOT_AUDIBLE) { + LOG4CXX_WARN(g_logger, "Trying to set audio streaming state" + " for non-media application to different from NOT_AUDIBLE"); + return; + } + audio_streaming_state_ = state; +} + +bool ApplicationImpl::set_app_icon_path(const std::string& path) { + std::string file_name = path.substr(path.find_last_of("/") + 1); + if (app_files_.find(file_name) != app_files_.end()) { + app_icon_path_ = path; + return true; + } + return false; +} + +void ApplicationImpl::set_app_allowed(const bool& allowed) { + is_app_allowed_ = allowed; +} + +void ApplicationImpl::set_device(connection_handler::DeviceHandle device) { + device_ = device; +} + +bool ApplicationImpl::has_been_activated() const { + return has_been_activated_; +} + +bool ApplicationImpl::AddFile(AppFile& file) { + if (app_files_.count(file.file_name) == 0) { + app_files_[file.file_name] = file; + return true; + } + return false; +} + +bool ApplicationImpl::UpdateFile(AppFile& file) { + if (app_files_.count(file.file_name) != 0) { + app_files_[file.file_name] = file; + return true; + } + return false; +} + +bool ApplicationImpl::DeleteFile(const std::string& file_name) { + AppFilesMap::iterator it = app_files_.find(file_name); + if (it != app_files_.end()) { + app_files_.erase(it); + return true; + } + return false; +} + +const AppFilesMap& ApplicationImpl::getAppFiles() const { + return this->app_files_; +} + +bool ApplicationImpl::SubscribeToButton(mobile_apis::ButtonName::eType btn_name) { + size_t old_size = subscribed_buttons_.size(); + subscribed_buttons_.insert(btn_name); + return (subscribed_buttons_.size() == old_size + 1); +} + +bool ApplicationImpl::IsSubscribedToButton(mobile_apis::ButtonName::eType btn_name) { + std::set<mobile_apis::ButtonName::eType>::iterator it = subscribed_buttons_.find(btn_name); + return (subscribed_buttons_.end() != it); +} +bool ApplicationImpl::UnsubscribeFromButton(mobile_apis::ButtonName::eType btn_name) { + size_t old_size = subscribed_buttons_.size(); + subscribed_buttons_.erase(btn_name); + return (subscribed_buttons_.size() == old_size - 1); +} + +bool ApplicationImpl::SubscribeToIVI(uint32_t vehicle_info_type_) { + size_t old_size = subscribed_vehicle_info_.size(); + subscribed_vehicle_info_.insert(vehicle_info_type_); + return (subscribed_vehicle_info_.size() == old_size + 1); +} + +bool ApplicationImpl::IsSubscribedToIVI(uint32_t vehicle_info_type_) { + std::set<uint32_t>::iterator it = subscribed_vehicle_info_.find( + vehicle_info_type_); + return (subscribed_vehicle_info_.end() != it); +} + +bool ApplicationImpl::UnsubscribeFromIVI(uint32_t vehicle_info_type_) { + size_t old_size = subscribed_vehicle_info_.size(); + subscribed_vehicle_info_.erase(vehicle_info_type_); + return (subscribed_vehicle_info_.size() == old_size - 1); +} + +const std::set<mobile_apis::ButtonName::eType>& ApplicationImpl::SubscribedButtons() const { + return subscribed_buttons_; +} + +const std::set<uint32_t>& ApplicationImpl::SubscribesIVI() const { + return subscribed_vehicle_info_; +} + +uint32_t ApplicationImpl::nextHash() { + hash_val_ = rand(); + return hash_val_; +} + +uint32_t ApplicationImpl::curHash() const { + return hash_val_; +} + +uint32_t ApplicationImpl::UpdateHash() { + uint32_t new_hash= nextHash(); + MessageHelper::SendHashUpdateNotification(app_id()); + return new_hash; +} + +void ApplicationImpl::CleanupFiles() { + std::string directory_name = file_system::FullPath(name()); + if (file_system::DirectoryExists(directory_name)) { + for (AppFilesMap::const_iterator it = app_files_.begin(); + it != app_files_.end(); ++it) { + if (!it->second.is_persistent) { + std::string file_name = directory_name; + file_name += "/"; + file_name += it->second.file_name; + file_system::DeleteFile(file_name); + } + } + std::vector < std::string > persistent_files = file_system::ListFiles( + directory_name); + if (0 == persistent_files.size()) { + file_system::RemoveDirectory(directory_name); + } + } + app_files_.clear(); +} + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/application_manager_impl.cc b/SDL_Core/src/components/application_manager/src/application_manager_impl.cc new file mode 100644 index 000000000..033882b47 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/application_manager_impl.cc @@ -0,0 +1,1661 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/application_manager_impl.h" + +#include <climits> +#include <string> +#include <fstream> + +#include "application_manager/application_manager_impl.h" +#include "application_manager/mobile_command_factory.h" +#include "application_manager/commands/command_impl.h" +#include "application_manager/commands/command_notification_impl.h" +#include "application_manager/message_helper.h" +#include "application_manager/mobile_message_handler.h" +#include "connection_handler/connection_handler_impl.h" +#include "formatters/formatter_json_rpc.h" +#include "formatters/CFormatterJsonSDLRPCv2.hpp" +#include "formatters/CFormatterJsonSDLRPCv1.hpp" +#include "config_profile/profile.h" +#include "utils/threads/thread.h" +#include "utils/file_system.h" +#include "policies/policy_manager.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +log4cxx::LoggerPtr ApplicationManagerImpl::logger_ = log4cxx::LoggerPtr( + log4cxx::Logger::getLogger("ApplicationManager")); + +uint32_t ApplicationManagerImpl::corelation_id_ = 0; +const uint32_t ApplicationManagerImpl::max_corelation_id_ = UINT_MAX; + +namespace formatters = NsSmartDeviceLink::NsJSONHandler::Formatters; +namespace jhs = NsSmartDeviceLink::NsJSONHandler::strings; + +ApplicationManagerImpl::ApplicationManagerImpl() + : audio_pass_thru_active_(false), + is_distracting_driver_(false), + is_vr_session_strated_(false), + hmi_cooperating_(false), + is_all_apps_allowed_(true), + hmi_handler_(NULL), + connection_handler_(NULL), + policy_manager_(NULL), + hmi_so_factory_(NULL), + mobile_so_factory_(NULL), + protocol_handler_(NULL), + messages_from_mobile_("application_manager::FromMobileThreadImpl", this), + messages_to_mobile_("application_manager::ToMobileThreadImpl", this), + messages_from_hmi_("application_manager::FromHMHThreadImpl", this), + messages_to_hmi_("application_manager::ToHMHThreadImpl", this), + request_ctrl_(), + hmi_capabilities_(this), + unregister_reason_(mobile_api::AppInterfaceUnregisteredReason::MASTER_RESET), + media_manager_(NULL), + resume_ctrl_(this) +{ + LOG4CXX_INFO(logger_, "Creating ApplicationManager"); + if (!policies_manager_.Init()) { + LOG4CXX_ERROR(logger_, "Policies manager initialization failed."); + return; + } + + media_manager_ = media_manager::MediaManagerImpl::instance(); +} + +bool ApplicationManagerImpl::InitThread(threads::Thread* thread) { + if (!thread) { + LOG4CXX_ERROR(logger_, "Failed to allocate memory for thread object"); + return false; + } + LOG4CXX_INFO( + logger_, + "Starting thread with stack size " + << profile::Profile::instance()->thread_min_stack_size()); + if (!thread->start()) { + /*startWithOptions( + threads::ThreadOptions( + profile::Profile::instance()->thread_min_stack_size()))*/ + LOG4CXX_ERROR(logger_, "Failed to start thread"); + return false; + } + return true; +} + +ApplicationManagerImpl::~ApplicationManagerImpl() { + LOG4CXX_INFO(logger_, "Destructing ApplicationManager."); + + media_manager_ = NULL; + hmi_handler_ = NULL; + connection_handler_ = NULL; + policy_manager_ = NULL; + hmi_so_factory_ = NULL; + mobile_so_factory_ = NULL; + protocol_handler_ = NULL; + media_manager_ = NULL; +} + +bool ApplicationManagerImpl::Stop() { + LOG4CXX_INFO(logger_, "Stop ApplicationManager."); + try { + UnregisterAllApplications(); + } + catch(...) { + LOG4CXX_ERROR(logger_, + "An error occured during unregistering applications."); + } + MessageHelper::SendOnSdlCloseNotificationToHMI(); + return true; +} + +ApplicationSharedPtr ApplicationManagerImpl::application(int32_t app_id) const { + std::map<int32_t, ApplicationSharedPtr>::const_iterator it = + applications_.find(app_id); + if (applications_.end() != it) { + return it->second; + } else { + return ApplicationSharedPtr(); + } +} + +ApplicationSharedPtr ApplicationManagerImpl::active_application() const { + // TODO(DK) : check driver distraction + for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin(); + application_list_.end() != it; + ++it) { + if ((*it)->IsFullscreen()) { + return *it; + } + } + return ApplicationSharedPtr(); +} + +std::vector<ApplicationSharedPtr> ApplicationManagerImpl::applications_by_button( + uint32_t button) { + std::vector<ApplicationSharedPtr> result; + for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin(); + application_list_.end() != it; ++it) { + if ((*it)->IsSubscribedToButton( + static_cast<mobile_apis::ButtonName::eType>(button))) { + result.push_back(*it); + } + } + return result; +} + +std::vector<ApplicationSharedPtr> ApplicationManagerImpl::applications_by_ivi( + uint32_t vehicle_info) { + std::vector<ApplicationSharedPtr> result; + for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin(); + application_list_.end() != it; + ++it) { + if ((*it)->IsSubscribedToIVI(vehicle_info)) { + result.push_back(*it); + } + } + return result; +} + +std::vector<ApplicationSharedPtr> ApplicationManagerImpl::applications_with_navi() { + std::vector<ApplicationSharedPtr> result; + for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin(); + application_list_.end() != it; + ++it) { + if ((*it)->allowed_support_navigation()) { + result.push_back(*it); + } + } + return result; +} + +ApplicationSharedPtr ApplicationManagerImpl::RegisterApplication( + const utils::SharedPtr<smart_objects::SmartObject>& + request_for_registration) { + smart_objects::SmartObject& message = *request_for_registration; + uint32_t connection_key = + message[strings::params][strings::connection_key].asInt(); + + if (false == is_all_apps_allowed_) { + LOG4CXX_INFO(logger_, + "RegisterApplication: access to app's disabled by user"); + utils::SharedPtr<smart_objects::SmartObject> response( + MessageHelper::CreateNegativeResponse( + connection_key, mobile_apis::FunctionID::RegisterAppInterfaceID, + message[strings::params][strings::correlation_id].asUInt(), + mobile_apis::Result::DISALLOWED)); + ManageMobileCommand(response); + return ApplicationSharedPtr(); + } + + // app_id is SDL "internal" ID + // original app_id can be gotten via ApplicationImpl::mobile_app_id() + uint32_t app_id = 0; + std::list<int32_t> sessions_list; + uint32_t device_id = 0; + + if (connection_handler_) { + connection_handler::ConnectionHandlerImpl* con_handler_impl = + static_cast<connection_handler::ConnectionHandlerImpl*>( + connection_handler_); + if (con_handler_impl->GetDataOnSessionKey(connection_key, &app_id, + &sessions_list, &device_id) + == -1) { + LOG4CXX_ERROR(logger_, + "Failed to create application: no connection info."); + utils::SharedPtr<smart_objects::SmartObject> response( + MessageHelper::CreateNegativeResponse( + connection_key, mobile_apis::FunctionID::RegisterAppInterfaceID, + message[strings::params][strings::correlation_id].asUInt(), + mobile_apis::Result::GENERIC_ERROR)); + ManageMobileCommand(response); + return ApplicationSharedPtr(); + } + } + + ApplicationSharedPtr application(new ApplicationImpl(app_id)); + if (!application) { + utils::SharedPtr<smart_objects::SmartObject> response( + MessageHelper::CreateNegativeResponse( + connection_key, mobile_apis::FunctionID::RegisterAppInterfaceID, + message[strings::params][strings::correlation_id].asUInt(), + mobile_apis::Result::OUT_OF_MEMORY)); + ManageMobileCommand(response); + return ApplicationSharedPtr(); + } + + const std::string& name = + message[strings::msg_params][strings::app_name].asString(); + + application->set_name(name); + application->set_device(device_id); + + application->set_language( + static_cast<mobile_api::Language::eType>( + message[strings::msg_params][strings::language_desired].asInt())); + + application->set_ui_language( + static_cast<mobile_api::Language::eType>( + message[strings::msg_params][strings::hmi_display_language_desired] + .asInt())); + + Version version; + int32_t min_version = + message[strings::msg_params][strings::sync_msg_version] + [strings::minor_version].asInt(); + + /*if (min_version < APIVersion::kAPIV2) { + LOG4CXX_ERROR(logger_, "UNSUPPORTED_VERSION"); + utils::SharedPtr<smart_objects::SmartObject> response( + MessageHelper::CreateNegativeResponse( + connection_key, mobile_apis::FunctionID::RegisterAppInterfaceID, + message[strings::params][strings::correlation_id], + mobile_apis::Result::UNSUPPORTED_VERSION)); + ManageMobileCommand(response); + delete application; + return NULL; + }*/ + version.min_supported_api_version = static_cast<APIVersion>(min_version); + + int32_t max_version = + message[strings::msg_params][strings::sync_msg_version] + [strings::major_version].asInt(); + + /*if (max_version > APIVersion::kAPIV2) { + LOG4CXX_ERROR(logger_, "UNSUPPORTED_VERSION"); + utils::SharedPtr<smart_objects::SmartObject> response( + MessageHelper::CreateNegativeResponse( + connection_key, mobile_apis::FunctionID::RegisterAppInterfaceID, + message[strings::params][strings::correlation_id], + mobile_apis::Result::UNSUPPORTED_VERSION)); + ManageMobileCommand(response); + delete application; + return NULL; + }*/ + version.max_supported_api_version = static_cast<APIVersion>(max_version); + application->set_version(version); + + application->set_mobile_app_id(message[strings::msg_params][strings::app_id]); + + sync_primitives::AutoLock lock(applications_list_lock_); + + applications_.insert(std::pair<int32_t, ApplicationSharedPtr>(app_id, application)); + application_list_.insert(application); + + // TODO(PV): add asking user to allow application + // BasicCommunication_AllowApp + // application->set_app_allowed(result); + return application; +} + +bool ApplicationManagerImpl::RemoveAppDataFromHMI(ApplicationSharedPtr app) { + return true; +} + +bool ApplicationManagerImpl::LoadAppDataToHMI(ApplicationSharedPtr app) { + return true; +} + +bool ApplicationManagerImpl::ActivateApplication(ApplicationSharedPtr app) { + if (!app) { + LOG4CXX_ERROR(logger_, "Null-pointer application received."); + NOTREACHED(); + return false; + } + + bool is_new_app_media = app->is_media_application(); + + for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin(); + application_list_.end() != it; + ++it) { + ApplicationSharedPtr curr_app = *it; + if (app->app_id() == curr_app->app_id()) { + if (curr_app->IsFullscreen()) { + LOG4CXX_WARN(logger_, "Application is already active."); + return false; + } + if (mobile_api::HMILevel::eType::HMI_LIMITED != + curr_app->hmi_level()) { + if (curr_app->has_been_activated()) { + MessageHelper::SendAppDataToHMI(curr_app); + } + } + if (!curr_app->MakeFullscreen()) { + return false; + } + MessageHelper::SendHMIStatusNotification(*curr_app); + } else { + if (is_new_app_media) { + if (curr_app->IsAudible()) { + curr_app->MakeNotAudible(); + MessageHelper::SendHMIStatusNotification(*curr_app); + } + } + if (curr_app->IsFullscreen()) { + MessageHelper::RemoveAppDataFromHMI(curr_app); + } + } + } + return true; +} + +mobile_apis::HMILevel::eType ApplicationManagerImpl::PutApplicationInLimited( + ApplicationSharedPtr app) { + DCHECK(app.get()) + + bool is_new_app_media = app->is_media_application(); + mobile_api::HMILevel::eType result = mobile_api::HMILevel::HMI_LIMITED; + + for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin(); + application_list_.end() != it; + ++it) { + ApplicationSharedPtr curr_app = *it; + if (app->app_id() == curr_app->app_id()) { + continue; + } + + if (curr_app->hmi_level() == mobile_api::HMILevel::HMI_LIMITED) { + result = mobile_api::HMILevel::HMI_BACKGROUND; + break; + } + if (curr_app->hmi_level() == mobile_api::HMILevel::HMI_FULL) { + if (curr_app->is_media_application()) { + result = mobile_api::HMILevel::HMI_BACKGROUND; + } else { + result = mobile_api::HMILevel::HMI_LIMITED; + } + break; + } + + } + app->set_hmi_level(result); + return result; +} + +mobile_api::HMILevel::eType ApplicationManagerImpl::PutApplicationInFull( + ApplicationSharedPtr app) { + DCHECK(app.get()) + + bool is_new_app_media = app->is_media_application(); + mobile_api::HMILevel::eType result = mobile_api::HMILevel::HMI_FULL; + + std::set<ApplicationSharedPtr>::iterator it = application_list_.begin(); + for (; application_list_.end() != it; ++it) { + ApplicationSharedPtr curr_app = *it; + if (app->app_id() == curr_app->app_id()) { + continue; + } + + if (is_new_app_media) { + if (curr_app->hmi_level() == mobile_api::HMILevel::HMI_FULL) { + if (curr_app->is_media_application()) { + result = mobile_api::HMILevel::HMI_BACKGROUND; + } else { + result = mobile_api::HMILevel::HMI_LIMITED; + } + break; + } + if (curr_app->hmi_level() == mobile_api::HMILevel::HMI_LIMITED) { + result = mobile_api::HMILevel::HMI_BACKGROUND; + break; + } + } else { + if (curr_app->hmi_level() == mobile_api::HMILevel::HMI_FULL) { + result = mobile_api::HMILevel::HMI_BACKGROUND; + break; + } + if (curr_app->hmi_level() == mobile_api::HMILevel::HMI_LIMITED) { + result = mobile_api::HMILevel::HMI_FULL; + break; + } + } + } + + if ( result == mobile_api::HMILevel::HMI_FULL) { + MessageHelper::SendActivateAppToHMI(app->app_id()); + } + return result; +} + +void ApplicationManagerImpl::DeactivateApplication(ApplicationSharedPtr app) { + MessageHelper::SendDeleteCommandRequestToHMI(app); + MessageHelper::ResetGlobalproperties(app); +} + +void ApplicationManagerImpl::ConnectToDevice(uint32_t id) { + // TODO(VS): Call function from ConnectionHandler + if (!connection_handler_) { + LOG4CXX_WARN(logger_, "Connection handler is not set."); + return; + } + + connection_handler_->ConnectToDevice(id); +} + +void ApplicationManagerImpl::OnHMIStartedCooperation() { + hmi_cooperating_ = true; + LOG4CXX_INFO(logger_, "ApplicationManagerImpl::OnHMIStartedCooperation()"); + + if (true == profile::Profile::instance()->launch_hmi()) { + utils::SharedPtr<smart_objects::SmartObject> is_vr_ready( + MessageHelper::CreateModuleInfoSO( + static_cast<uint32_t>(hmi_apis::FunctionID::VR_IsReady))); + ManageHMICommand(is_vr_ready); + + utils::SharedPtr<smart_objects::SmartObject> is_tts_ready( + MessageHelper::CreateModuleInfoSO(hmi_apis::FunctionID::TTS_IsReady)); + ManageHMICommand(is_tts_ready); + + utils::SharedPtr<smart_objects::SmartObject> is_ui_ready( + MessageHelper::CreateModuleInfoSO(hmi_apis::FunctionID::UI_IsReady)); + ManageHMICommand(is_ui_ready); + + utils::SharedPtr<smart_objects::SmartObject> is_navi_ready( + MessageHelper::CreateModuleInfoSO( + hmi_apis::FunctionID::Navigation_IsReady)); + ManageHMICommand(is_navi_ready); + + utils::SharedPtr<smart_objects::SmartObject> is_ivi_ready( + MessageHelper::CreateModuleInfoSO( + hmi_apis::FunctionID::VehicleInfo_IsReady)); + ManageHMICommand(is_ivi_ready); + + utils::SharedPtr<smart_objects::SmartObject> button_capabilities( + MessageHelper::CreateModuleInfoSO( + hmi_apis::FunctionID::Buttons_GetCapabilities)); + ManageHMICommand(button_capabilities); + } + + if (!connection_handler_) { + LOG4CXX_WARN(logger_, "Connection handler is not set."); + } else { + connection_handler_->StartTransportManager(); + } +} + +uint32_t ApplicationManagerImpl::GetNextHMICorrelationID() { + if (corelation_id_ < max_corelation_id_) { + corelation_id_++; + } else { + corelation_id_ = 0; + } + + return corelation_id_; +} + +bool ApplicationManagerImpl::begin_audio_pass_thru() { + sync_primitives::AutoLock lock(audio_pass_thru_lock_); + if (audio_pass_thru_active_) { + return false; + } else { + audio_pass_thru_active_ = true; + return true; + } +} + +bool ApplicationManagerImpl::end_audio_pass_thru() { + sync_primitives::AutoLock lock(audio_pass_thru_lock_); + if (audio_pass_thru_active_) { + audio_pass_thru_active_ = false; + return true; + } else { + return false; + } +} + +void ApplicationManagerImpl::set_driver_distraction(bool is_distracting) { + is_distracting_driver_ = is_distracting; +} + +void ApplicationManagerImpl::set_vr_session_started(const bool& state) { + is_vr_session_strated_ = state; +} + +void ApplicationManagerImpl::set_all_apps_allowed(const bool& allowed) { + is_all_apps_allowed_ = allowed; +} + +void ApplicationManagerImpl::StartAudioPassThruThread(int32_t session_key, + int32_t correlation_id, int32_t max_duration, int32_t sampling_rate, + int32_t bits_per_sample, int32_t audio_type) { + LOG4CXX_INFO(logger_, "START MICROPHONE RECORDER"); + if (NULL != media_manager_) { + media_manager_->StartMicrophoneRecording( + session_key, + std::string("record.wav"), + max_duration); + } +} + +void ApplicationManagerImpl::SendAudioPassThroughNotification( + uint32_t session_key, + std::vector<uint8_t> binaryData) { + LOG4CXX_TRACE_ENTER(logger_); + + { + sync_primitives::AutoLock lock(audio_pass_thru_lock_); + if (!audio_pass_thru_active_) { + LOG4CXX_ERROR(logger_, "Trying to send PassThroughNotification" + " when PassThrough is not active"); + + return; + } + } + + smart_objects::SmartObject* on_audio_pass = NULL; + on_audio_pass = new smart_objects::SmartObject(); + + if (NULL == on_audio_pass) { + LOG4CXX_ERROR_EXT(logger_, "OnAudioPassThru NULL pointer"); + + return; + } + + LOG4CXX_INFO_EXT(logger_, "Fill smart object"); + + (*on_audio_pass)[strings::params][strings::message_type] = + application_manager::MessageType::kNotification; + + (*on_audio_pass)[strings::params][strings::connection_key] = + static_cast<int32_t>(session_key); + (*on_audio_pass)[strings::params][strings::function_id] = + mobile_apis::FunctionID::OnAudioPassThruID; + + LOG4CXX_INFO_EXT(logger_, "Fill binary data"); + // binary data + (*on_audio_pass)[strings::params][strings::binary_data] = + smart_objects::SmartObject(binaryData); + + LOG4CXX_INFO_EXT(logger_, "After fill binary data"); + + LOG4CXX_INFO_EXT(logger_, "Send data"); + CommandSharedPtr command = + MobileCommandFactory::CreateCommand(&(*on_audio_pass)); + command->Init(); + command->Run(); + command->CleanUp(); +} + +void ApplicationManagerImpl::StopAudioPassThru(int32_t application_key) { + LOG4CXX_TRACE_ENTER(logger_); + if (NULL != media_manager_) { + media_manager_->StopMicrophoneRecording(application_key); + } +} + +std::string ApplicationManagerImpl::GetDeviceName( + connection_handler::DeviceHandle handle) { + DCHECK(connection_handler_ != 0); + + std::string device_name = ""; + std::list<uint32_t> applications_list; + connection_handler::ConnectionHandlerImpl* con_handler_impl = + static_cast<connection_handler::ConnectionHandlerImpl*>( + connection_handler_); + if (con_handler_impl->GetDataOnDeviceID(handle, &device_name, + &applications_list) == -1) { + LOG4CXX_ERROR(logger_, "Failed to extract device name for id " << handle); + } else { + LOG4CXX_INFO(logger_, "\t\t\t\t\tDevice name is " << device_name); + } + + return device_name; +} + +void ApplicationManagerImpl::OnMessageReceived( + const protocol_handler::RawMessagePtr& message) { + LOG4CXX_INFO(logger_, "ApplicationManagerImpl::OnMessageReceived"); + + if (!message) { + LOG4CXX_ERROR(logger_, "Null-pointer message received."); + NOTREACHED(); + return; + } + + utils::SharedPtr<Message> outgoing_message = ConvertRawMsgToMessage(message); + if (outgoing_message) { + messages_from_mobile_.PostMessage( + impl::MessageFromMobile(outgoing_message)); + } else { + LOG4CXX_WARN(logger_, "Incorrect message received"); + } +} + +void ApplicationManagerImpl::OnMobileMessageSent( + const protocol_handler::RawMessagePtr& message) { + LOG4CXX_INFO(logger_, "ApplicationManagerImpl::OnMobileMessageSent"); +} + +void ApplicationManagerImpl::OnMessageReceived( + hmi_message_handler::MessageSharedPointer message) { + LOG4CXX_INFO(logger_, "ApplicationManagerImpl::OnMessageReceived"); + + if (!message) { + LOG4CXX_ERROR(logger_, "Null-pointer message received."); + NOTREACHED(); + return; + } + + messages_from_hmi_.PostMessage(impl::MessageFromHmi(message)); +} + +void ApplicationManagerImpl::OnErrorSending( + hmi_message_handler::MessageSharedPointer message) { + return; +} + +void ApplicationManagerImpl::OnDeviceListUpdated( + const connection_handler::DeviceList& device_list) { + LOG4CXX_INFO(logger_, "ApplicationManagerImpl::OnDeviceListUpdated"); + + smart_objects::SmartObject* update_list = new smart_objects::SmartObject; + smart_objects::SmartObject& so_to_send = *update_list; + so_to_send[jhs::S_PARAMS][jhs::S_FUNCTION_ID] = + hmi_apis::FunctionID::BasicCommunication_UpdateDeviceList; + so_to_send[jhs::S_PARAMS][jhs::S_MESSAGE_TYPE] = + hmi_apis::messageType::request; + so_to_send[jhs::S_PARAMS][jhs::S_PROTOCOL_VERSION] = 2; + so_to_send[jhs::S_PARAMS][jhs::S_PROTOCOL_TYPE] = 1; + so_to_send[jhs::S_PARAMS][jhs::S_CORRELATION_ID] = GetNextHMICorrelationID(); + smart_objects::SmartObject* msg_params = MessageHelper::CreateDeviceListSO( + device_list); + if (!msg_params) { + LOG4CXX_WARN(logger_, "Failed to create sub-smart object."); + delete update_list; + return; + } + so_to_send[jhs::S_MSG_PARAMS] = *msg_params; + ManageHMICommand(update_list); +} + +void ApplicationManagerImpl::RemoveDevice( + const connection_handler::DeviceHandle& device_handle) { +} + + +bool ApplicationManagerImpl::IsAudioStreamingAllowed(uint32_t connection_key) const { + ApplicationSharedPtr app = application(connection_key); + + if (!app) { + LOG4CXX_INFO(logger_, "An application is not registered."); + return false; + } + + const mobile_api::HMILevel::eType& hmi_level = app->hmi_level(); + + if (mobile_api::HMILevel::HMI_FULL == hmi_level || + mobile_api::HMILevel::HMI_LIMITED == hmi_level) { + return true; + } + + return false; +} + +bool ApplicationManagerImpl::IsVideoStreamingAllowed(uint32_t connection_key) const { + ApplicationSharedPtr app = application(connection_key); + + if (!app) { + LOG4CXX_INFO(logger_, "An application is not registered."); + return false; + } + + const mobile_api::HMILevel::eType& hmi_level = app->hmi_level(); + + if (mobile_api::HMILevel::HMI_FULL == hmi_level && + app->hmi_supports_navi_streaming() ) { + return true; + } + + return false; +} + +bool ApplicationManagerImpl::OnServiceStartedCallback( + const connection_handler::DeviceHandle& device_handle, + const int32_t& session_key, + const protocol_handler::ServiceType& type) { + LOG4CXX_INFO(logger_, + "OnServiceStartedCallback " << type << " in session " << session_key); + + ApplicationSharedPtr app = application(session_key); + + switch (type) { + case protocol_handler::kRpc: { + LOG4CXX_INFO(logger_, "RPC service is about to be started."); + break; + } + case protocol_handler::kMobileNav: { + LOG4CXX_INFO(logger_, "Video service is about to be started."); + if (media_manager_) { + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "An application is not registered."); + return false; + } + if (app->allowed_support_navigation()) { + media_manager_->StartVideoStreaming(session_key); + } else { + return false; + } + } + break; + } + case protocol_handler::kAudio: { + LOG4CXX_INFO(logger_, "Audio service is about to be started."); + if (media_manager_) { + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "An application is not registered."); + return false; + } + if (app->allowed_support_navigation()) { + media_manager_->StartAudioStreaming(session_key); + } else { + return false; + } + } + break; + } + default: { + LOG4CXX_WARN(logger_, "Unknown type of service to be started."); + break; + } + } + + return true; +} + +void ApplicationManagerImpl::OnServiceEndedCallback(const int32_t& session_key, + const protocol_handler::ServiceType& type) { + LOG4CXX_INFO_EXT( + logger_, + "OnServiceEndedCallback " << type << " in session " << session_key); + switch (type) { + case protocol_handler::kRpc: { + LOG4CXX_INFO(logger_, "Remove application."); + UnregisterApplication(session_key, true); + break; + } + case protocol_handler::kMobileNav: { + LOG4CXX_INFO(logger_, "Stop video streaming."); + if (media_manager_) { + media_manager_->StopVideoStreaming(session_key); + } + break; + } + case protocol_handler::kAudio:{ + LOG4CXX_INFO(logger_, "Stop audio service."); + if (media_manager_) { + media_manager_->StopAudioStreaming(session_key); + } + break; + } + default: + LOG4CXX_WARN(logger_, "Unknown type of service to be ended."); + break; + } +} + +void ApplicationManagerImpl::set_hmi_message_handler( + hmi_message_handler::HMIMessageHandler* handler) { + hmi_handler_ = handler; +} + +void ApplicationManagerImpl::set_connection_handler( + connection_handler::ConnectionHandler* handler) { + connection_handler_ = handler; + resume_ctrl_.LoadApplications(); +} + +void ApplicationManagerImpl::set_policy_manager( + policies::PolicyManager* policy_manager) { + policy_manager_ = policy_manager; +} + +void ApplicationManagerImpl::set_protocol_handler( + protocol_handler::ProtocolHandler* handler) { + protocol_handler_ = handler; +} + +void ApplicationManagerImpl::StartDevicesDiscovery() { + connection_handler::ConnectionHandlerImpl::instance()-> + StartDevicesDiscovery(); +} + +void ApplicationManagerImpl::SendMessageToMobile( + const utils::SharedPtr<smart_objects::SmartObject>& message, + bool final_message) { + LOG4CXX_INFO(logger_, "ApplicationManagerImpl::SendMessageToMobile"); + + if (!message) { + LOG4CXX_ERROR(logger_, "Null-pointer message received."); + NOTREACHED(); + return; + } + + if (!protocol_handler_) { + LOG4CXX_WARN(logger_, "No Protocol Handler set"); + return; + } + + mobile_so_factory().attachSchema(*message); + LOG4CXX_INFO( + logger_, + "Attached schema to message, result if valid: " << message->isValid()); + + // Messages to mobile are not yet prioritized so use default priority value + utils::SharedPtr<Message> message_to_send(new Message( + protocol_handler::MessagePriority::kDefault)); + if (!ConvertSOtoMessage((*message), (*message_to_send))) { + LOG4CXX_WARN(logger_, "Can't send msg to Mobile: failed to create string"); + return; + } + + smart_objects::SmartObject& msg_to_mobile = *message; + if (msg_to_mobile[strings::params].keyExists(strings::correlation_id)) { + request_ctrl_.terminateRequest( + msg_to_mobile[strings::params][strings::correlation_id].asUInt()); + } + + messages_to_mobile_.PostMessage(impl::MessageToMobile(message_to_send, + final_message)); +} + +bool ApplicationManagerImpl::ManageMobileCommand( + const utils::SharedPtr<smart_objects::SmartObject>& message) { + LOG4CXX_INFO(logger_, "ApplicationManagerImpl::ManageMobileCommand"); + + if (!message) { + LOG4CXX_WARN(logger_, "Null-pointer message received."); + NOTREACHED() + return false; + } + +#ifdef DEBUG + MessageHelper::PrintSmartObject(*message); +#endif + + LOG4CXX_INFO(logger_, "Trying to create message in mobile factory."); + CommandSharedPtr command = MobileCommandFactory::CreateCommand(message); + + if (!command) { + LOG4CXX_WARN(logger_, "Failed to create mobile command from smart object"); + return false; + } + + mobile_apis::FunctionID::eType function_id = + static_cast<mobile_apis::FunctionID::eType>( + (*message)[strings::params][strings::function_id].asInt()); + + // Notifications from HMI have no such parameter + uint32_t correlation_id = + (*message)[strings::params].keyExists(strings::correlation_id) + ? (*message)[strings::params][strings::correlation_id].asUInt() + : 0; + + uint32_t connection_key = + (*message)[strings::params][strings::connection_key].asUInt(); + + uint32_t protocol_type = + (*message)[strings::params][strings::protocol_type].asUInt(); + + ApplicationSharedPtr app; + + if (((mobile_apis::FunctionID::RegisterAppInterfaceID != function_id) && + (protocol_type == commands::CommandImpl::mobile_protocol_type_)) && + (mobile_apis::FunctionID::UnregisterAppInterfaceID != function_id)) { + app = ApplicationManagerImpl::instance()->application(connection_key); + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "APPLICATION_NOT_REGISTERED"); + smart_objects::SmartObject* response = + MessageHelper::CreateNegativeResponse( + connection_key, + static_cast<int32_t>(function_id), + correlation_id, + static_cast<int32_t>(mobile_apis::Result::APPLICATION_NOT_REGISTERED)); + + ApplicationManagerImpl::instance()->SendMessageToMobile(response); + return false; + } + + // Message for "CheckPermission" must be with attached schema + mobile_so_factory().attachSchema(*message); + + policies::CheckPermissionResult result = + policy_manager_->CheckPermission(app->app_id(), + *message, + app->hmi_level()); + + if (policies::PermissionResult::PERMISSION_ALLOWED != result.result) { + LOG4CXX_WARN( + logger_, + "Request blocked by policies. " << "FunctionID: " + << static_cast<int32_t>(function_id) << " Application HMI status: " + << static_cast<int32_t>(app->hmi_level())); + + smart_objects::SmartObject* response = + MessageHelper::CreateBlockedByPoliciesResponse(function_id, + mobile_apis::Result::REJECTED, correlation_id, connection_key); + + ApplicationManagerImpl::instance()->SendMessageToMobile(response); + return true; + } + } + + if (command->Init()) { + if ((*message)[strings::params][strings::message_type].asInt() == + mobile_apis::messageType::request) { + // get application hmi level + mobile_api::HMILevel::eType app_hmi_level = + mobile_api::HMILevel::INVALID_ENUM; + if (app) { + app_hmi_level = app->hmi_level(); + } + + request_controller::RequestController::TResult result = + request_ctrl_.addRequest(command, app_hmi_level); + + if (result == request_controller::RequestController::SUCCESS) { + LOG4CXX_INFO(logger_, "Perform request"); + } else if (result == + request_controller::RequestController:: + TOO_MANY_PENDING_REQUESTS) { + LOG4CXX_ERROR_EXT(logger_, "Unable to perform request: " << + "TOO_MANY_PENDING_REQUESTS"); + + smart_objects::SmartObject* response = + MessageHelper::CreateNegativeResponse( + connection_key, + static_cast<int32_t>(function_id), + correlation_id, + static_cast<int32_t>(mobile_apis::Result::TOO_MANY_PENDING_REQUESTS)); + + ApplicationManagerImpl::instance()->SendMessageToMobile(response); + return false; + } else if (result == + request_controller::RequestController::TOO_MANY_REQUESTS) { + LOG4CXX_ERROR_EXT(logger_, "Unable to perform request: " << + "TOO_MANY_REQUESTS"); + + MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile( + connection_key, + mobile_api::AppInterfaceUnregisteredReason::TOO_MANY_REQUESTS); + + UnregisterApplication(connection_key, true); + return false; + } else if (result == + request_controller::RequestController:: + NONE_HMI_LEVEL_MANY_REQUESTS) { + LOG4CXX_ERROR_EXT(logger_, "Unable to perform request: " << + "REQUEST_WHILE_IN_NONE_HMI_LEVEL"); + + MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile( + connection_key, mobile_api::AppInterfaceUnregisteredReason:: + REQUEST_WHILE_IN_NONE_HMI_LEVEL); + + UnregisterApplication(connection_key, true); + return false; + } else { + LOG4CXX_ERROR_EXT(logger_, "Unable to perform request: Unknown case"); + return false; + } + } + + command->Run(); + } + + return true; +} + +void ApplicationManagerImpl::SendMessageToHMI( + const utils::SharedPtr<smart_objects::SmartObject>& message) { + LOG4CXX_INFO(logger_, "ApplicationManagerImpl::SendMessageToHMI"); + + if (!message) { + LOG4CXX_WARN(logger_, "Null-pointer message received."); + NOTREACHED(); + return; + } + + if (!hmi_handler_) { + LOG4CXX_WARN(logger_, "No HMI Handler set"); + return; + } + + // SmartObject |message| has no way to declare priority for now + utils::SharedPtr<Message> message_to_send( + new Message(protocol_handler::MessagePriority::kDefault)); + if (!message_to_send) { + LOG4CXX_ERROR(logger_, "Null pointer"); + return; + } + + hmi_so_factory().attachSchema(*message); + LOG4CXX_INFO( + logger_, + "Attached schema to message, result if valid: " << message->isValid()); + +#ifdef WEB_HMI + if (!ConvertSOtoMessage(*message, *message_to_send)) { + LOG4CXX_WARN(logger_, + "Cannot send message to HMI: failed to create string"); + return; + } +#endif // WEB_HMI + +#ifdef QT_HMI + message_to_send->set_smart_object(*message); +#endif // QT_HMI + + messages_to_hmi_.PostMessage(impl::MessageToHmi(message_to_send)); +} + +bool ApplicationManagerImpl::ManageHMICommand( + const utils::SharedPtr<smart_objects::SmartObject>& message) { + LOG4CXX_INFO(logger_, "ApplicationManagerImpl::ManageHMICommand"); + + if (!message) { + LOG4CXX_WARN(logger_, "Null-pointer message received."); + NOTREACHED(); + return false; + } + +#ifdef DEBUG + MessageHelper::PrintSmartObject(*message); +#endif + + CommandSharedPtr command = HMICommandFactory::CreateCommand(message); + + if (!command) { + LOG4CXX_WARN(logger_, "Failed to create command from smart object"); + return false; + } + + if (command->Init()) { + command->Run(); + if (command->CleanUp()) { + return true; + } + } + return false; +} + +void ApplicationManagerImpl::CreateHMIMatrix(HMIMatrix* matrix) { +} + +void ApplicationManagerImpl::CreatePoliciesManager(PoliciesManager* managaer) { +} + +bool ApplicationManagerImpl::CheckPolicies(smart_objects::SmartObject* message, + ApplicationSharedPtr app) { + return true; +} + +bool ApplicationManagerImpl::CheckHMIMatrix( + smart_objects::SmartObject* message) { + return true; +} + +bool ApplicationManagerImpl::ConvertMessageToSO( + const Message& message, smart_objects::SmartObject& output) { + LOG4CXX_INFO( + logger_, + "\t\t\tMessage to convert: protocol " << message.protocol_version() + << "; json " << message.json_message()); + + switch (message.protocol_version()) { + case ProtocolVersion::kV2: { + + if (!formatters::CFormatterJsonSDLRPCv2::fromString( + message.json_message(), + output, + message.function_id(), + message.type(), + message.correlation_id()) + || !mobile_so_factory().attachSchema(output) + || ((output.validate() != smart_objects::Errors::OK) + && (output.validate() != + smart_objects::Errors::UNEXPECTED_PARAMETER))) { + LOG4CXX_WARN(logger_, "Failed to parse string to smart object"); + utils::SharedPtr<smart_objects::SmartObject> response( + MessageHelper::CreateNegativeResponse( + message.connection_key(), message.function_id(), + message.correlation_id(), mobile_apis::Result::INVALID_DATA)); + ManageMobileCommand(response); + return false; + } + LOG4CXX_INFO( + logger_, + "Convertion result for sdl object is true" << " function_id " + << output[jhs::S_PARAMS][jhs::S_FUNCTION_ID].asInt()); + output[strings::params][strings::connection_key] = + message.connection_key(); + if (message.binary_data()) { + output[strings::params][strings::binary_data] = + *(message.binary_data()); + } + break; + } + case ProtocolVersion::kHMI: { + int32_t result = formatters::FormatterJsonRpc::FromString < + hmi_apis::FunctionID::eType, hmi_apis::messageType::eType > ( + message.json_message(), output); + LOG4CXX_INFO( + logger_, + "Convertion result: " << result << " function id " + << output[jhs::S_PARAMS][jhs::S_FUNCTION_ID].asInt()); + if (!hmi_so_factory().attachSchema(output)) { + LOG4CXX_WARN(logger_, "Failed to attach schema to object."); + return false; + } + if (output.validate() != smart_objects::Errors::OK && + output.validate() != smart_objects::Errors::UNEXPECTED_PARAMETER) { + LOG4CXX_WARN( + logger_, + "Incorrect parameter from HMI"); + output.erase(strings::msg_params); + output[strings::params][hmi_response::code] = + hmi_apis::Common_Result::INVALID_DATA; + output[strings::msg_params][strings::info] = + std::string("Received invalid data on HMI response"); + } + break; + } + case ProtocolVersion::kV1: { + static NsSmartDeviceLinkRPC::V1::v4_protocol_v1_2_no_extra v1_shema; + + if (message.function_id() == 0 || message.type() == kUnknownType) { + LOG4CXX_ERROR(logger_, "Message received: UNSUPPORTED_VERSION"); + + int32_t conversation_result = + formatters::CFormatterJsonSDLRPCv1::fromString < + NsSmartDeviceLinkRPC::V1::FunctionID::eType, + NsSmartDeviceLinkRPC::V1::messageType::eType > ( + message.json_message(), output); + + if (formatters::CFormatterJsonSDLRPCv1::kSuccess + == conversation_result) { + + smart_objects::SmartObject params = smart_objects::SmartObject(smart_objects::SmartType::SmartType_Map); + + output[strings::params][strings::message_type] = + NsSmartDeviceLinkRPC::V1::messageType::response; + output[strings::params][strings::connection_key] = message.connection_key(); + + output[strings::msg_params] = + smart_objects::SmartObject(smart_objects::SmartType::SmartType_Map); + output[strings::msg_params][strings::success] = false; + output[strings::msg_params][strings::result_code] = + NsSmartDeviceLinkRPC::V1::Result::UNSUPPORTED_VERSION; + + smart_objects::SmartObject* msg_to_send = new smart_objects::SmartObject(output); + v1_shema.attachSchema(*msg_to_send); + SendMessageToMobile(msg_to_send); + return false; + } + } + + break; + } + default: + // TODO(PV): + // removed NOTREACHED() because some app can still have vesion 1. + LOG4CXX_WARN( + logger_, + "Application used unsupported protocol :" << message.protocol_version() + << "."); + return false; + } + + LOG4CXX_INFO(logger_, "Successfully parsed message into smart object"); + return true; +} + +bool ApplicationManagerImpl::ConvertSOtoMessage( + const smart_objects::SmartObject& message, Message& output) { + LOG4CXX_INFO(logger_, "Message to convert"); + + if (smart_objects::SmartType_Null == message.getType() + || smart_objects::SmartType_Invalid == message.getType()) { + LOG4CXX_WARN(logger_, "Invalid smart object received."); + return false; + } + + LOG4CXX_INFO( + logger_, + "Message with protocol: " + << message.getElement(jhs::S_PARAMS).getElement(jhs::S_PROTOCOL_TYPE) + .asInt()); + + std::string output_string; + switch (message.getElement(jhs::S_PARAMS).getElement(jhs::S_PROTOCOL_TYPE) + .asInt()) { + case 0: + { + if (message.getElement(jhs::S_PARAMS).getElement(jhs::S_PROTOCOL_VERSION).asInt() == 1) { + if (!formatters::CFormatterJsonSDLRPCv1::toString(message, + output_string)) { + LOG4CXX_WARN(logger_, "Failed to serialize smart object"); + return false; + } + output.set_protocol_version(application_manager::kV1); + } else { + if (!formatters::CFormatterJsonSDLRPCv2::toString(message, + output_string)) { + LOG4CXX_WARN(logger_, "Failed to serialize smart object"); + return false; + } + output.set_protocol_version(application_manager::kV2); + } + + break; + } + case 1: { + if (!formatters::FormatterJsonRpc::ToString(message, output_string)) { + LOG4CXX_WARN(logger_, "Failed to serialize smart object"); + return false; + } + output.set_protocol_version(application_manager::kHMI); + break; + } + default: + NOTREACHED(); + return false; + } + + LOG4CXX_INFO(logger_, "Convertion result: " << output_string); + + output.set_connection_key( + message.getElement(jhs::S_PARAMS).getElement(strings::connection_key) + .asInt()); + + output.set_function_id( + message.getElement(jhs::S_PARAMS).getElement(jhs::S_FUNCTION_ID).asInt()); + + output.set_correlation_id( + message.getElement(jhs::S_PARAMS).getElement(jhs::S_CORRELATION_ID) + .asInt()); + output.set_message_type( + static_cast<MessageType>(message.getElement(jhs::S_PARAMS).getElement( + jhs::S_MESSAGE_TYPE).asInt())); + + // Currently formatter creates JSON = 3 bytes for empty SmartObject. + // workaround for notification. JSON must be empty + if (mobile_apis::FunctionID::OnAudioPassThruID + != message.getElement(jhs::S_PARAMS).getElement(strings::function_id) + .asInt()) { + output.set_json_message(output_string); + } + + if (message.getElement(jhs::S_PARAMS).keyExists(strings::binary_data)) { + application_manager::BinaryData* binaryData = + new application_manager::BinaryData( + message.getElement(jhs::S_PARAMS).getElement(strings::binary_data) + .asBinary()); + + if (NULL == binaryData) { + LOG4CXX_ERROR(logger_, "Null pointer"); + return false; + } + output.set_binary_data(binaryData); + } + + LOG4CXX_INFO(logger_, "Successfully parsed smart object into message"); + return true; +} + +utils::SharedPtr<Message> ApplicationManagerImpl::ConvertRawMsgToMessage( + const protocol_handler::RawMessagePtr& message) { + DCHECK(message); + utils::SharedPtr<Message> outgoing_message; + + if (message->service_type() != protocol_handler::kRpc + && + message->service_type() != protocol_handler::kBulk) { + // skip this message, not under handling of ApplicationManager + LOG4CXX_INFO(logger_, "Skipping message; not the under AM handling."); + return outgoing_message; + } + + Message* convertion_result = NULL; + if (message->protocol_version() == 1) { + convertion_result = + MobileMessageHandler::HandleIncomingMessageProtocolV1(message); + } else if (message->protocol_version() == 2) { + convertion_result = + MobileMessageHandler::HandleIncomingMessageProtocolV2(message); + } else { + LOG4CXX_WARN(logger_, "Unknown protocol version."); + return outgoing_message; + } + + if (convertion_result) { + outgoing_message = convertion_result; + } else { + LOG4CXX_ERROR(logger_, "Received invalid message"); + } + return outgoing_message; +} + +void ApplicationManagerImpl::ProcessMessageFromMobile( + const utils::SharedPtr<Message>& message) { + LOG4CXX_INFO(logger_, "ApplicationManagerImpl::ProcessMessageFromMobile()"); + + utils::SharedPtr<smart_objects::SmartObject> so_from_mobile( + new smart_objects::SmartObject); + + if (!so_from_mobile) { + LOG4CXX_ERROR(logger_, "Null pointer"); + return; + } + + if (!ConvertMessageToSO(*message, *so_from_mobile)) { + LOG4CXX_ERROR(logger_, "Cannot create smart object from message"); + return; + } + + if (!ManageMobileCommand(so_from_mobile)) { + LOG4CXX_ERROR(logger_, "Received command didn't run successfully"); + } +} + +void ApplicationManagerImpl::ProcessMessageFromHMI( + const utils::SharedPtr<Message>& message) { + LOG4CXX_INFO(logger_, "ApplicationManagerImpl::ProcessMessageFromHMI()"); + utils::SharedPtr<smart_objects::SmartObject> smart_object( + new smart_objects::SmartObject); + + if (!smart_object) { + LOG4CXX_ERROR(logger_, "Null pointer"); + return; + } + +#ifdef WEB_HMI + if (!ConvertMessageToSO(*message, *smart_object)) { + LOG4CXX_ERROR(logger_, "Cannot create smart object from message"); + return; + } +#endif // WEB_HMI + +#ifdef QT_HMI + *smart_object = message->smart_object(); +#endif // QT_HMI + + LOG4CXX_INFO(logger_, "Converted message, trying to create hmi command"); + if (!ManageHMICommand(smart_object)) { + LOG4CXX_ERROR(logger_, "Received command didn't run successfully"); + } +} + +hmi_apis::HMI_API& ApplicationManagerImpl::hmi_so_factory() { + if (!hmi_so_factory_) { + hmi_so_factory_ = new hmi_apis::HMI_API; + if (!hmi_so_factory_) { + LOG4CXX_ERROR(logger_, "Out of memory"); + NOTREACHED(); + } + } + return *hmi_so_factory_; +} + +mobile_apis::MOBILE_API& ApplicationManagerImpl::mobile_so_factory() { + if (!mobile_so_factory_) { + mobile_so_factory_ = new mobile_apis::MOBILE_API; + if (!mobile_so_factory_) { + LOG4CXX_ERROR(logger_, "Out of memory."); + NOTREACHED(); + } + } + return *mobile_so_factory_; +} + +HMICapabilities& ApplicationManagerImpl::hmi_capabilities() { + return hmi_capabilities_; +} + +void ApplicationManagerImpl::addNotification(const CommandSharedPtr& ptr) { + notification_list_.push_back(ptr); +} + +void ApplicationManagerImpl::removeNotification(const CommandSharedPtr& ptr) { + std::list<CommandSharedPtr>::iterator it = notification_list_.begin(); + for (; notification_list_.end() != it; ++it) { + if (*it == ptr) { + notification_list_.erase(it); + break; + } + } +} + +void ApplicationManagerImpl::updateRequestTimeout(uint32_t connection_key, + uint32_t mobile_correlation_id, + uint32_t new_timeout_value) { + request_ctrl_.updateRequestTimeout(connection_key, mobile_correlation_id, + new_timeout_value); +} + +const uint32_t ApplicationManagerImpl::application_id +(const int32_t correlation_id) { + // ykazakov: there is no erase for const iterator for QNX + std::map<const int32_t, const uint32_t>::iterator it = + appID_list_.find(correlation_id); + if (appID_list_.end() != it) { + const uint32_t app_id = it->second; + appID_list_.erase(it); + return app_id; + } else { + return 0; + } +} + +void ApplicationManagerImpl::set_application_id(const int32_t correlation_id, + const uint32_t app_id) { + appID_list_.insert(std::pair<const int32_t, const uint32_t> + (correlation_id, app_id)); +} + +void ApplicationManagerImpl::SetUnregisterAllApplicationsReason( + mobile_api::AppInterfaceUnregisteredReason::eType reason) { + unregister_reason_ = reason; +} + +void ApplicationManagerImpl::UnregisterAllApplications() { + LOG4CXX_INFO(logger_, "ApplicationManagerImpl::UnregisterAllApplications " << + unregister_reason_); + + hmi_cooperating_ = false; + + std::set<ApplicationSharedPtr>::iterator it = application_list_.begin(); + while (it != application_list_.end()) { + MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile( + (*it)->app_id(), unregister_reason_); + + UnregisterApplication((*it)->app_id(), true); + it = application_list_.begin(); + } + resume_ctrl_.SavetoFileSystem(); +} + +void ApplicationManagerImpl::UnregisterApplication(const uint32_t& app_id, bool is_resuming) { + LOG4CXX_INFO(logger_, + "ApplicationManagerImpl::UnregisterApplication " << app_id); + + sync_primitives::AutoLock lock(applications_list_lock_); + + std::map<int32_t, ApplicationSharedPtr>::iterator it = applications_.find(app_id); + if (applications_.end() == it) { + LOG4CXX_INFO(logger_, "Application is already unregistered."); + return; + } + ApplicationSharedPtr app_to_remove = it->second; + if (is_resuming) { + resume_ctrl_.SaveApplication(app_to_remove); + } + if (audio_pass_thru_active_) { + // May be better to put this code in MessageHelper? + end_audio_pass_thru(); + StopAudioPassThru(app_id); + MessageHelper::SendStopAudioPathThru(); + } + MessageHelper::RemoveAppDataFromHMI(it->second); + MessageHelper::SendOnAppUnregNotificationToHMI(it->second); + applications_.erase(it); + application_list_.erase(app_to_remove); + request_ctrl_.terminateAppRequests(app_id); + + return; +} + +void ApplicationManagerImpl::Handle(const impl::MessageFromMobile& message) { + LOG4CXX_INFO(logger_, "Received message from Mobile side"); + + if (!message) { + LOG4CXX_ERROR(logger_, "Null-pointer message received."); + return; + } + ProcessMessageFromMobile(message); +} + +void ApplicationManagerImpl::Handle(const impl::MessageToMobile& message) { + protocol_handler::RawMessage* rawMessage = 0; + if (message->protocol_version() == application_manager::kV1) { + rawMessage = MobileMessageHandler::HandleOutgoingMessageProtocolV1( + message); + } else if (message->protocol_version() == application_manager::kV2) { + rawMessage = MobileMessageHandler::HandleOutgoingMessageProtocolV2( + message); + } else { + return; + } + if (!rawMessage) { + LOG4CXX_ERROR(logger_, "Failed to create raw message."); + return; + } + + if (!protocol_handler_) { + LOG4CXX_WARN(logger_, + "Protocol Handler is not set; cannot send message to mobile."); + return; + } + + protocol_handler_->SendMessageToMobileApp(rawMessage, message.is_final); + + LOG4CXX_INFO(logger_, "Message for mobile given away."); +} + +void ApplicationManagerImpl::Handle(const impl::MessageFromHmi& message) { + LOG4CXX_INFO(logger_, "Received message from hmi"); + + if (!message) { + LOG4CXX_ERROR(logger_, "Null-pointer message received."); + return; + } + + ProcessMessageFromHMI(message); +} + +void ApplicationManagerImpl::Handle(const impl::MessageToHmi& message) { + LOG4CXX_INFO(logger_, "Received message to hmi"); + if (!hmi_handler_) { + LOG4CXX_ERROR(logger_, "Observer is not set for HMIMessageHandler"); + return; + } + + hmi_handler_->SendMessageToHMI(message); + LOG4CXX_INFO(logger_, "Message from hmi given away."); +} + + +void ApplicationManagerImpl::Mute() { + mobile_apis::AudioStreamingState::eType state = + hmi_capabilities_.attenuated_supported() + ? mobile_apis::AudioStreamingState::ATTENUATED + : mobile_apis::AudioStreamingState::NOT_AUDIBLE; + + std::set<ApplicationSharedPtr>::const_iterator it = application_list_.begin(); + std::set<ApplicationSharedPtr>::const_iterator itEnd = application_list_.end(); + for (; it != itEnd; ++it) { + if ((*it)->is_media_application()) { + (*it)->set_audio_streaming_state(state); + (*it)->set_tts_speak_state(true); + MessageHelper::SendHMIStatusNotification(*(*it)); + } + } +} + +void ApplicationManagerImpl::Unmute() { + std::set<ApplicationSharedPtr>::const_iterator it = application_list_.begin(); + std::set<ApplicationSharedPtr>::const_iterator itEnd = application_list_.end(); + for (; it != itEnd; ++it) { + if ((*it)->is_media_application()) { + (*it)->set_audio_streaming_state( + mobile_apis::AudioStreamingState::AUDIBLE); + (*it)->set_tts_speak_state(false); + MessageHelper::SendHMIStatusNotification(*(*it)); + } + } +} + +mobile_apis::Result::eType ApplicationManagerImpl::SaveBinary( + const std::string& app_name, const std::vector<uint8_t>& binary_data, + const std::string& save_path, const uint32_t offset) { + if (binary_data.size() > file_system::GetAvailableSpaceForApp(app_name)) { + return mobile_apis::Result::OUT_OF_MEMORY; + } + + LOG4CXX_INFO(logger_, "SaveBinaryWithOffset binary_size = " + << binary_data.size() << " offset = " << offset); + + uint32_t file_size = file_system::FileSize(file_system::FullPath(save_path)); + std::ofstream* file_stream; + if (offset != 0) { + if (file_size != offset) { + LOG4CXX_INFO(logger_, "ApplicationManagerImpl::SaveBinaryWithOffset offset does'n match existing filesize"); + return mobile_apis::Result::INVALID_DATA; + } + file_stream = file_system::Open(file_system::FullPath(save_path), + std::ios_base::app); + } else { + LOG4CXX_INFO(logger_, "ApplicationManagerImpl::SaveBinaryWithOffset offset is 0, rewrite"); + // if offset == 0: rewrite file + file_stream = file_system::Open(file_system::FullPath(save_path), + std::ios_base::out); + } + + if (!file_system::Write(file_stream,binary_data.data(), binary_data.size())) { + file_system::Close(file_stream); + return mobile_apis::Result::GENERIC_ERROR; + } + file_system::Close(file_stream); + LOG4CXX_INFO(logger_, "Successfully write data to file"); + return mobile_apis::Result::SUCCESS; +} + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/command_impl.cc b/SDL_Core/src/components/application_manager/src/commands/command_impl.cc new file mode 100644 index 000000000..95d96bde1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/command_impl.cc @@ -0,0 +1,67 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/command_impl.h" + +namespace application_manager { + +namespace commands { + +log4cxx::LoggerPtr logger_ = log4cxx::LoggerPtr( + log4cxx::Logger::getLogger("Commands")); + +const int32_t CommandImpl::hmi_protocol_type_ = 1; +const int32_t CommandImpl::mobile_protocol_type_ = 0; +const int32_t CommandImpl::protocol_version_ = 2; + +CommandImpl::CommandImpl(const MessageSharedPtr& message) + : message_(message) { +} + +CommandImpl::~CommandImpl() { + CleanUp(); +} + +bool CommandImpl::Init() { + return true; +} + +bool CommandImpl::CleanUp() { + return true; +} + +void CommandImpl::Run() { +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/command_notification_impl.cc b/SDL_Core/src/components/application_manager/src/commands/command_notification_impl.cc new file mode 100644 index 000000000..c99f2d908 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/command_notification_impl.cc @@ -0,0 +1,74 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/command_notification_impl.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/message_helper.h" + +namespace application_manager { + +namespace commands { + +CommandNotificationImpl::CommandNotificationImpl( + const MessageSharedPtr& message) + : CommandImpl(message) { +} + +CommandNotificationImpl::~CommandNotificationImpl() { +} + +bool CommandNotificationImpl::Init() { + return true; +} + +bool CommandNotificationImpl::CleanUp() { + return true; +} + +void CommandNotificationImpl::Run() { +} + +void CommandNotificationImpl::SendNotification() { + (*message_)[strings::params][strings::protocol_type] = mobile_protocol_type_; + (*message_)[strings::params][strings::protocol_version] = protocol_version_; + (*message_)[strings::params][strings::message_type] = + static_cast<int32_t>(application_manager::MessageType::kNotification); + + LOG4CXX_INFO(logger_, "SendNotification"); + MessageHelper::PrintSmartObject(*message_); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/command_request_impl.cc b/SDL_Core/src/components/application_manager/src/commands/command_request_impl.cc new file mode 100644 index 000000000..0ba1ba69d --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/command_request_impl.cc @@ -0,0 +1,211 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include <string> +#include "application_manager/commands/command_request_impl.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/message_helper.h" +#include "smart_objects/smart_object.h" +#include "config_profile/profile.h" + +namespace application_manager { + +namespace commands { + +CommandRequestImpl::CommandRequestImpl(const MessageSharedPtr& message) + : CommandImpl(message), + default_timeout_(profile::Profile::instance()->default_timeout()), + current_state_(kAwaitingHMIResponse) { +} + +CommandRequestImpl::~CommandRequestImpl() { +} + +bool CommandRequestImpl::Init() { + return true; +} + +bool CommandRequestImpl::CleanUp() { + return true; +} + +void CommandRequestImpl::Run() { +} + +void CommandRequestImpl::onTimeOut() { + LOG4CXX_INFO(logger_, "CommandRequestImpl::onTimeOut"); + + unsubscribe_from_all_events(); + { + sync_primitives::AutoLock auto_lock(state_lock_); + if (kCompleted == current_state_) { + // don't send timeout if request completed + return; + } + + current_state_ = kTimedOut; + } + + smart_objects::SmartObject* response = + MessageHelper::CreateNegativeResponse(connection_key(), function_id(), + correlation_id(), mobile_api::Result::TIMED_OUT); + + ApplicationManagerImpl::instance()->ManageMobileCommand(response); +} + +void CommandRequestImpl::on_event(const event_engine::Event& event) { +} + +void CommandRequestImpl::SendResponse( + const bool success, const mobile_apis::Result::eType& result_code, + const char* info, const NsSmart::SmartObject* response_params) { + + { + sync_primitives::AutoLock auto_lock(state_lock_); + if (kTimedOut == current_state_) { + // don't send response if request timeout expired + return; + } + + current_state_ = kCompleted; + } + + NsSmartDeviceLink::NsSmartObjects::SmartObject* result = + new NsSmartDeviceLink::NsSmartObjects::SmartObject; + if (!result) { + LOG4CXX_ERROR(logger_, "Memory allocation failed."); + return; + } + NsSmartDeviceLink::NsSmartObjects::SmartObject& response = *result; + + response[strings::params][strings::message_type] = MessageType::kResponse; + response[strings::params][strings::correlation_id] = correlation_id(); + response[strings::params][strings::protocol_type] = + CommandImpl::mobile_protocol_type_; + response[strings::params][strings::protocol_version] = + CommandImpl::protocol_version_; + response[strings::params][strings::connection_key] = connection_key(); + response[strings::params][strings::function_id] = function_id(); + + if (response_params) { + response[strings::msg_params] = *response_params; + } + + if (info) { + response[strings::msg_params][strings::info] = std::string(info); + } + + response[strings::msg_params][strings::success] = success; + response[strings::msg_params][strings::result_code] = result_code; + + ApplicationManagerImpl::instance()->ManageMobileCommand(result); +} + +bool CommandRequestImpl::CheckSyntax(std::string str, bool allow_empty_line) { + if (std::string::npos != str.find_first_of("\t\n")) { + LOG4CXX_ERROR(logger_, "CheckSyntax failed! :" << str); + return false; + } + if (!allow_empty_line) { + if ((std::string::npos == str.find_first_not_of(' '))) { + return false; + } + } + return true; +} + +void CommandRequestImpl::SendHMIRequest( + const hmi_apis::FunctionID::eType& function_id, + const NsSmart::SmartObject* msg_params, bool use_events) { + + NsSmartDeviceLink::NsSmartObjects::SmartObject* result = + new NsSmartDeviceLink::NsSmartObjects::SmartObject; + if (!result) { + LOG4CXX_ERROR(logger_, "Memory allocation failed."); + return; + } + + const uint32_t hmi_correlation_id = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + if (use_events) { + subscribe_on_event(function_id, hmi_correlation_id); + } + + NsSmartDeviceLink::NsSmartObjects::SmartObject& request = *result; + request[strings::params][strings::message_type] = MessageType::kRequest; + request[strings::params][strings::function_id] = function_id; + request[strings::params][strings::correlation_id] = hmi_correlation_id; + request[strings::params][strings::protocol_version] = + CommandImpl::protocol_version_; + request[strings::params][strings::protocol_type] = + CommandImpl::hmi_protocol_type_; + + if (msg_params) { + request[strings::msg_params] = *msg_params; + } + + if (!ApplicationManagerImpl::instance()->ManageHMICommand(result)) { + LOG4CXX_ERROR(logger_, "Unable to send request"); + SendResponse(false, mobile_apis::Result::OUT_OF_MEMORY); + } +} + +//TODO(VS): Should be removed after we will shift to Event engine usage completely +void CommandRequestImpl::CreateHMINotification( + const hmi_apis::FunctionID::eType& function_id, + const NsSmart::SmartObject& msg_params) const { + + NsSmartDeviceLink::NsSmartObjects::SmartObject* result = + new NsSmartDeviceLink::NsSmartObjects::SmartObject; + if (!result) { + LOG4CXX_ERROR(logger_, "Memory allocation failed."); + return; + } + NsSmartDeviceLink::NsSmartObjects::SmartObject& notify = *result; + + notify[strings::params][strings::message_type] = + static_cast<int32_t>(application_manager::MessageType::kNotification); + notify[strings::params][strings::function_id] = function_id; + notify[strings::params][strings::protocol_version] = + CommandImpl::protocol_version_; + notify[strings::params][strings::protocol_type] = + CommandImpl::hmi_protocol_type_; + notify[strings::msg_params] = msg_params; + + if (!ApplicationManagerImpl::instance()->ManageHMICommand(result)) { + LOG4CXX_ERROR(logger_, "Unable to send HMI notification"); + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/command_response_impl.cc b/SDL_Core/src/components/application_manager/src/commands/command_response_impl.cc new file mode 100644 index 000000000..d7bd9133b --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/command_response_impl.cc @@ -0,0 +1,88 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/command_response_impl.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +CommandResponseImpl::CommandResponseImpl(const MessageSharedPtr& message) + : CommandImpl(message) { +} + +CommandResponseImpl::~CommandResponseImpl() { +} + +bool CommandResponseImpl::Init() { + return true; +} + +bool CommandResponseImpl::CleanUp() { + return true; +} + +void CommandResponseImpl::Run() { +} + +void CommandResponseImpl::SendResponse( + bool success, const mobile_apis::Result::eType& result_code, bool final_message) { + LOG4CXX_INFO(logger_, "Trying to send response"); + + (*message_)[strings::params][strings::protocol_type] = mobile_protocol_type_; + (*message_)[strings::params][strings::protocol_version] = protocol_version_; + (*message_)[strings::msg_params][strings::success] = success; + + if (!(*message_)[strings::msg_params].keyExists(strings::result_code)) { + if (mobile_apis::Result::INVALID_ENUM != result_code) { + (*message_)[strings::msg_params][strings::result_code] = result_code; + } else if ((*message_)[strings::params].keyExists(hmi_response::code)) { + (*message_)[strings::msg_params][strings::result_code] = + (*message_)[strings::params][hmi_response::code]; + } else { + if (success) { + (*message_)[strings::msg_params][strings::result_code] = + mobile_apis::Result::SUCCESS; + } else { + (*message_)[strings::msg_params][strings::result_code] = + mobile_apis::Result::INVALID_ENUM; + } + } + } + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_, final_message); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/activate_app_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/activate_app_request.cc new file mode 100644 index 000000000..de1cf3347 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/activate_app_request.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/activate_app_request.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +ActivateAppRequest::ActivateAppRequest( + const MessageSharedPtr& message): RequestToHMI(message) { +} + +ActivateAppRequest::~ActivateAppRequest() { +} + +void ActivateAppRequest::Run() { + LOG4CXX_INFO(logger_, "ActivateAppRequest::Run"); + int32_t correlation_id = RequestToHMI::correlation_id(); + uint32_t app_id = RequestToHMI::application_id(); + ApplicationManagerImpl::instance()->set_application_id(correlation_id, app_id); + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/activate_app_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/activate_app_response.cc new file mode 100644 index 000000000..fc31b34b5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/activate_app_response.cc @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/activate_app_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +ActivateAppResponse::ActivateAppResponse( + const MessageSharedPtr& message): ResponseFromHMI(message) { +} + +ActivateAppResponse::~ActivateAppResponse() { +} + +void ActivateAppResponse::Run() { + LOG4CXX_INFO(logger_, "ActivateAppResponse::Run"); + const hmi_apis::Common_Result::eType code = + static_cast<hmi_apis::Common_Result::eType>( + (*message_)[strings::params][hmi_response::code].asInt()); + if (hmi_apis::Common_Result::SUCCESS == code) { + int32_t correlation_id = ResponseFromHMI::correlation_id(); + const uint32_t app_id = ApplicationManagerImpl::instance()-> + application_id(correlation_id); + if (!app_id) { + LOG4CXX_ERROR(logger_, "Error app_id = "<<app_id); + return; + } + ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application(app_id); + if (application) { + ApplicationManagerImpl::instance()->ActivateApplication(application); + } else { + LOG4CXX_ERROR(logger_, "Application cannot activate"); + } + } else { + LOG4CXX_ERROR(logger_, "Error result code"<<code); + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/allow_all_apps_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_all_apps_request.cc new file mode 100644 index 000000000..6ac42c7a0 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_all_apps_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/allow_all_apps_request.h" + +namespace application_manager { + +namespace commands { + +AllowAllAppsRequest::AllowAllAppsRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +AllowAllAppsRequest::~AllowAllAppsRequest() { +} + +void AllowAllAppsRequest::Run() { + LOG4CXX_INFO(logger_, "AllowAllAppsRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/allow_all_apps_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_all_apps_response.cc new file mode 100644 index 000000000..69c52a326 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_all_apps_response.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/allow_all_apps_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +AllowAllAppsResponse::AllowAllAppsResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +AllowAllAppsResponse::~AllowAllAppsResponse() { +} + +void AllowAllAppsResponse::Run() { + LOG4CXX_INFO(logger_, "AllowAllAppsResponse::Run"); + + ApplicationManagerImpl::instance()->set_all_apps_allowed( + (*message_)[strings::msg_params][hmi_response::allowed].asBool()); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/allow_app_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_app_request.cc new file mode 100644 index 000000000..302a8c676 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_app_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/allow_app_request.h" + +namespace application_manager { + +namespace commands { + +AllowAppRequest::AllowAppRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +AllowAppRequest::~AllowAppRequest() { +} + +void AllowAppRequest::Run() { + LOG4CXX_INFO(logger_, "AllowAppRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/allow_app_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_app_response.cc new file mode 100644 index 000000000..035e41438 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_app_response.cc @@ -0,0 +1,65 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/allow_app_response.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +namespace commands { + +AllowAppResponse::AllowAppResponse( + const MessageSharedPtr& message): ResponseFromHMI(message) { +} + +AllowAppResponse::~AllowAppResponse() { +} + +void AllowAppResponse::Run() { + LOG4CXX_INFO(logger_, "AllowAppResponse::Run"); + + uint32_t connection_key = + (*message_)[strings::params][strings::connection_key].asInt(); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()-> + application(connection_key); + + if (!app) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + return; + } + app->set_app_allowed((*message_)[strings::msg_params][hmi_response::allowed].asBool()); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/audio_start_stream_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_start_stream_request.cc new file mode 100644 index 000000000..15ffbfe2e --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_start_stream_request.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/audio_start_stream_request.h" + +namespace application_manager { + +namespace commands { + +AudioStartStreamRequest::AudioStartStreamRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +AudioStartStreamRequest::~AudioStartStreamRequest() { +} + +void AudioStartStreamRequest::Run() { + LOG4CXX_INFO(logger_, "AudioStartStreamRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/audio_start_stream_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_start_stream_response.cc new file mode 100644 index 000000000..1acc07d46 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_start_stream_response.cc @@ -0,0 +1,52 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/audio_start_stream_response.h" + +namespace application_manager { + +namespace commands { + +AudioStartStreamResponse::AudioStartStreamResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +AudioStartStreamResponse::~AudioStartStreamResponse() { +} + +void AudioStartStreamResponse::Run() { + LOG4CXX_INFO(logger_, "AudioStartStreamResponse::Run"); + +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/audio_stop_stream_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_stop_stream_request.cc new file mode 100644 index 000000000..72c0a54eb --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_stop_stream_request.cc @@ -0,0 +1,23 @@ +#include "application_manager/commands/hmi/audio_stop_stream_request.h" + +namespace application_manager { + +namespace commands { + +AudioStopStreamRequest::AudioStopStreamRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +AudioStopStreamRequest::~AudioStopStreamRequest() { +} + +void AudioStopStreamRequest::Run() { + LOG4CXX_INFO(logger_, "AudioStopStreamRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/audio_stop_stream_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_stop_stream_response.cc new file mode 100644 index 000000000..f583feb23 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_stop_stream_response.cc @@ -0,0 +1,52 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/audio_stop_stream_response.h" + +namespace application_manager { + +namespace commands { + +AudioStopStreamResponse::AudioStopStreamResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +AudioStopStreamResponse::~AudioStopStreamResponse() { +} + +void AudioStopStreamResponse::Run() { + LOG4CXX_INFO(logger_, "AudioStopStreamResponse::Run"); + +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/button_get_capabilities_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/button_get_capabilities_request.cc new file mode 100644 index 000000000..e00b3fdc5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/button_get_capabilities_request.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/button_get_capabilities_request.h" +#include "utils/logger.h" + +namespace application_manager { + +namespace commands { + +ButtonGetCapabilitiesRequest::ButtonGetCapabilitiesRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +ButtonGetCapabilitiesRequest::~ButtonGetCapabilitiesRequest() { +} + +void ButtonGetCapabilitiesRequest::Run() { + LOG4CXX_INFO(logger_, "ButtonGetCapabilitiesRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/button_get_capabilities_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/button_get_capabilities_response.cc new file mode 100644 index 000000000..0b6723474 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/button_get_capabilities_response.cc @@ -0,0 +1,63 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/button_get_capabilities_response.h" +#include "application_manager/application_manager_impl.h" +#include "utils/logger.h" + +namespace application_manager { + +namespace commands { + +ButtonGetCapabilitiesResponse::ButtonGetCapabilitiesResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +ButtonGetCapabilitiesResponse::~ButtonGetCapabilitiesResponse() { +} + +void ButtonGetCapabilitiesResponse::Run() { + LOG4CXX_INFO(logger_, "ButtonGetCapabilitiesResponse::Run"); + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + + hmi_capabilities.set_button_capabilities( + (*message_)[strings::msg_params][hmi_response::capabilities]); + + hmi_capabilities.set_preset_bank_capabilities( + (*message_)[strings::msg_params][hmi_response::preset_bank_capabilities]); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/close_popup_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/close_popup_request.cc new file mode 100644 index 000000000..3cc581868 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/close_popup_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/close_popup_request.h" + +namespace application_manager { + +namespace commands { + +ClosePopupRequest::ClosePopupRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +ClosePopupRequest::~ClosePopupRequest() { +} + +void ClosePopupRequest::Run() { + LOG4CXX_INFO(logger_, "ClosePopupRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/close_popup_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/close_popup_response.cc new file mode 100644 index 000000000..fa98be5e0 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/close_popup_response.cc @@ -0,0 +1,53 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/close_popup_response.h" + +namespace application_manager { + +namespace commands { + +ClosePopupResponse::ClosePopupResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +ClosePopupResponse::~ClosePopupResponse() { +} + +void ClosePopupResponse::Run() { + LOG4CXX_INFO(logger_, "ClosePopupResponse::Run"); + + // TODO(VS): Process response from HMI +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/mixing_audio_supported_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/mixing_audio_supported_request.cc new file mode 100644 index 000000000..9ab4bf5db --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/mixing_audio_supported_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/mixing_audio_supported_request.h" + +namespace application_manager { + +namespace commands { + +MixingAudioSupportedRequest::MixingAudioSupportedRequest( + const MessageSharedPtr& message) : RequestToHMI(message) { +} + +MixingAudioSupportedRequest::~MixingAudioSupportedRequest() { +} + +void MixingAudioSupportedRequest::Run() { + LOG4CXX_INFO(logger_, "MixingAudioSupportedRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/mixing_audio_supported_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/mixing_audio_supported_response.cc new file mode 100644 index 000000000..4a4fc276d --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/mixing_audio_supported_response.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/mixing_audio_supported_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +MixingAudioSupportedResponse::MixingAudioSupportedResponse( + const MessageSharedPtr& message) : ResponseFromHMI(message) { +} + +MixingAudioSupportedResponse::~MixingAudioSupportedResponse() { +} + +void MixingAudioSupportedResponse::Run() { + LOG4CXX_INFO(logger_, "MixingAudioSupportedResponse::Run"); + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + hmi_capabilities.set_attenuated_supported((*message_) + [strings::msg_params][hmi_response::attenuated_supported].asBool()); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_request.cc new file mode 100644 index 000000000..7128231b1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/navi_alert_maneuver_request.h" + +namespace application_manager { + +namespace commands { + +NaviAlertManeuverRequest::NaviAlertManeuverRequest( + const MessageSharedPtr& message) : RequestToHMI(message) { +} + +NaviAlertManeuverRequest::~NaviAlertManeuverRequest() { +} + +void NaviAlertManeuverRequest::Run() { + LOG4CXX_INFO(logger_, "NaviAlertManeuverRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_response.cc new file mode 100644 index 000000000..823c96211 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_response.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/navi_alert_maneuver_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +NaviAlertManeuverResponse::NaviAlertManeuverResponse( + const MessageSharedPtr& message) : ResponseFromHMI(message) { +} + +NaviAlertManeuverResponse::~NaviAlertManeuverResponse() { +} + +void NaviAlertManeuverResponse::Run() { + LOG4CXX_INFO(logger_, "NaviAlertManeuverResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::Navigation_AlertManeuver); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_is_ready_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_is_ready_request.cc new file mode 100644 index 000000000..b7a179942 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_is_ready_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/navi_is_ready_request.h" + +namespace application_manager { + +namespace commands { + +NaviIsReadyRequest::NaviIsReadyRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +NaviIsReadyRequest::~NaviIsReadyRequest() { +} + +void NaviIsReadyRequest::Run() { + LOG4CXX_INFO(logger_, "NaviIsReadyRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_is_ready_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_is_ready_response.cc new file mode 100644 index 000000000..8aef42b40 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_is_ready_response.cc @@ -0,0 +1,63 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/navi_is_ready_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +NaviIsReadyResponse::NaviIsReadyResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +NaviIsReadyResponse::~NaviIsReadyResponse() { +} + +void NaviIsReadyResponse::Run() { + LOG4CXX_INFO(logger_, "NaviIsReadyResponse::Run"); + smart_objects::SmartObject& object = *message_; + + bool is_available = false; + if (object[strings::msg_params].keyExists(strings::available)) { + is_available = object[strings::msg_params][strings::available].asBool(); + } + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + + hmi_capabilities.set_is_navi_cooperating(is_available); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_request.cc new file mode 100644 index 000000000..9103e1f6c --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/navi_show_constant_tbt_request.h" + +namespace application_manager { + +namespace commands { + +NaviShowConstantTBTRequest::NaviShowConstantTBTRequest( + const MessageSharedPtr& message) : RequestToHMI(message) { +} + +NaviShowConstantTBTRequest::~NaviShowConstantTBTRequest() { +} + +void NaviShowConstantTBTRequest::Run() { + LOG4CXX_INFO(logger_, "NaviShowConstantTBTRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_response.cc new file mode 100644 index 000000000..03c70dd81 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_response.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/navi_show_constant_tbt_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +NaviShowConstantTBTResponse::NaviShowConstantTBTResponse( + const MessageSharedPtr& message) : ResponseFromHMI(message) { +} + +NaviShowConstantTBTResponse::~NaviShowConstantTBTResponse() { +} + +void NaviShowConstantTBTResponse::Run() { + LOG4CXX_INFO(logger_, "NaviShowConstantTBTResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::Navigation_ShowConstantTBT); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc new file mode 100644 index 000000000..cb9dbd61e --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/navi_start_stream_request.h" + +namespace application_manager { + +namespace commands { + +NaviStartStreamRequest::NaviStartStreamRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +NaviStartStreamRequest::~NaviStartStreamRequest() { +} + +void NaviStartStreamRequest::Run() { + LOG4CXX_INFO(logger_, "NaviStartStreamRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc new file mode 100644 index 000000000..77a9ff577 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc @@ -0,0 +1,73 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/navi_start_stream_response.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +namespace commands { + +NaviStartStreamResponse::NaviStartStreamResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +NaviStartStreamResponse::~NaviStartStreamResponse() { +} + +void NaviStartStreamResponse::Run() { + LOG4CXX_INFO(logger_, "NaviStartStreamResponse::Run"); + + ApplicationSharedPtr app = + ApplicationManagerImpl::instance()->active_application(); + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "NaviStartStreamResponse no active app!"); + return; + } + + const hmi_apis::Common_Result::eType code = + static_cast<hmi_apis::Common_Result::eType>( + (*message_)[strings::params][hmi_response::code].asInt()); + + if (hmi_apis::Common_Result::SUCCESS == code) { + LOG4CXX_INFO(logger_, "NaviStartStreamResponse SUCCESS"); + app->set_hmi_supports_navi_streaming(true); + } else { + LOG4CXX_INFO(logger_, "NaviStartStreamResponse NOT SUCCESS"); + app->set_hmi_supports_navi_streaming(false); + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_stop_stream_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_stop_stream_request.cc new file mode 100644 index 000000000..2f1e14a12 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_stop_stream_request.cc @@ -0,0 +1,23 @@ +#include "application_manager/commands/hmi/navi_stop_stream_request.h" + +namespace application_manager { + +namespace commands { + +NaviStopStreamRequest::NaviStopStreamRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +NaviStopStreamRequest::~NaviStopStreamRequest() { +} + +void NaviStopStreamRequest::Run() { + LOG4CXX_INFO(logger_, "NaviStopStreamRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_stop_stream_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_stop_stream_response.cc new file mode 100644 index 000000000..c368940d5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_stop_stream_response.cc @@ -0,0 +1,52 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/navi_stop_stream_response.h" + +namespace application_manager { + +namespace commands { + +NaviStopStreamResponse::NaviStopStreamResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +NaviStopStreamResponse::~NaviStopStreamResponse() { +} + +void NaviStopStreamResponse::Run() { + LOG4CXX_INFO(logger_, "NaviStopStreamResponse::Run"); + +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_update_turn_list_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_update_turn_list_request.cc new file mode 100644 index 000000000..d0df9ec86 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_update_turn_list_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/navi_update_turn_list_request.h" + +namespace application_manager { + +namespace commands { + +NaviUpdateTurnListRequest::NaviUpdateTurnListRequest( + const MessageSharedPtr& message) : RequestToHMI(message) { +} + +NaviUpdateTurnListRequest::~NaviUpdateTurnListRequest() { +} + +void NaviUpdateTurnListRequest::Run() { + LOG4CXX_INFO(logger_, "NaviUpdateTurnListRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_update_turn_list_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_update_turn_list_response.cc new file mode 100644 index 000000000..d93b67bb5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_update_turn_list_response.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/navi_update_turn_list_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +NaviUpdateTurnListResponse::NaviUpdateTurnListResponse( + const MessageSharedPtr& message) : ResponseFromHMI(message) { +} + +NaviUpdateTurnListResponse::~NaviUpdateTurnListResponse() { +} + +void NaviUpdateTurnListResponse::Run() { + LOG4CXX_INFO(logger_, "NaviUpdateTurnListResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::Navigation_UpdateTurnList); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/notification_from_hmi.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/notification_from_hmi.cc new file mode 100644 index 000000000..b324e196a --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/notification_from_hmi.cc @@ -0,0 +1,100 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/notification_from_hmi.h" +#include "application_manager/application_manager_impl.h" +#include "smart_objects/smart_object.h" + +namespace application_manager { + +namespace commands { + +NotificationFromHMI::NotificationFromHMI(const MessageSharedPtr& message) + : CommandImpl(message) { +} + +NotificationFromHMI::~NotificationFromHMI() { +} + +bool NotificationFromHMI::Init() { + return true; +} + +bool NotificationFromHMI::CleanUp() { + return true; +} + +void NotificationFromHMI::Run() { +} + +void NotificationFromHMI::SendNotificationToMobile( + const MessageSharedPtr& message) { + ApplicationManagerImpl::instance()->ManageMobileCommand(message); +} + +void NotificationFromHMI::CreateHMIRequest( + const hmi_apis::FunctionID::eType& function_id, + const NsSmartObj::SmartObject& msg_params) const { + + NsSmartDeviceLink::NsSmartObjects::SmartObject* result = + new NsSmartDeviceLink::NsSmartObjects::SmartObject; + if (!result) { + LOG4CXX_ERROR(logger_, "Memory allocation failed."); + return; + } + + // get hmi correlation id for chaining further request from this object + const uint32_t hmi_correlation_id_ = ApplicationManagerImpl::instance() + ->GetNextHMICorrelationID(); + + NsSmartDeviceLink::NsSmartObjects::SmartObject& request = *result; + request[strings::params][strings::message_type] = + static_cast<int32_t>(application_manager::MessageType::kRequest); + request[strings::params][strings::function_id] = + static_cast<int32_t>(function_id); + request[strings::params][strings::correlation_id] = hmi_correlation_id_; + request[strings::params][strings::protocol_version] = + CommandImpl::protocol_version_; + request[strings::params][strings::protocol_type] = + CommandImpl::hmi_protocol_type_; + + request[strings::msg_params] = msg_params; + + if (!ApplicationManagerImpl::instance()->ManageHMICommand(result)) { + LOG4CXX_ERROR(logger_, "Unable to send request"); + return; + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/notification_to_hmi.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/notification_to_hmi.cc new file mode 100644 index 000000000..51ab188e9 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/notification_to_hmi.cc @@ -0,0 +1,66 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/notification_to_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +NotificationToHMI::NotificationToHMI(const MessageSharedPtr& message) + : CommandImpl(message) { +} + +NotificationToHMI::~NotificationToHMI() { +} + +bool NotificationToHMI::Init() { + return true; +} + +bool NotificationToHMI::CleanUp() { + return true; +} + +void NotificationToHMI::Run() { +} + +void NotificationToHMI::SendNotification() { + (*message_)[strings::params][strings::protocol_type] = hmi_protocol_type_; + (*message_)[strings::params][strings::protocol_version] = protocol_version_; + ApplicationManagerImpl::instance()->SendMessageToHMI(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_activated_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_activated_notification.cc new file mode 100644 index 000000000..8152244a9 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_activated_notification.cc @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_app_activated_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/message_helper.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +OnAppActivatedNotification::OnAppActivatedNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnAppActivatedNotification::~OnAppActivatedNotification() { +} + +void OnAppActivatedNotification::Run() { + LOG4CXX_INFO(logger_, "OnAppActivatedNotification::Run"); + uint32_t app_id = ((*message_)[strings::msg_params][strings::app_id]).asUInt(); + MessageHelper::SendActivateAppToHMI(app_id); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_deactivated_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_deactivated_notification.cc new file mode 100644 index 000000000..e20a1b907 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_deactivated_notification.cc @@ -0,0 +1,113 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_app_deactivated_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" +#include "config_profile/profile.h" + +namespace application_manager { + +namespace commands { + +OnAppDeactivatedNotification::OnAppDeactivatedNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnAppDeactivatedNotification::~OnAppDeactivatedNotification() { +} + +void OnAppDeactivatedNotification::Run() { + LOG4CXX_INFO(logger_, "OnAppDeactivatedNotification::Run"); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->active_application(); + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "OnAppDeactivatedNotification no active app!"); + return; + } + + if ((*message_)[strings::msg_params][strings::app_id].asInt() + != app->app_id()) { + LOG4CXX_ERROR_EXT(logger_, "Wrong application id!"); + return; + } + + if (mobile_api::HMILevel::eType::HMI_NONE == app->hmi_level()) { + return; + } + + switch ((*message_)[strings::msg_params][hmi_request::reason].asInt()) { + case hmi_apis::Common_DeactivateReason::AUDIO: + case hmi_apis::Common_DeactivateReason::PHONECALL: { + if (app->is_media_application()) { + if (profile::Profile::instance()->is_mixing_audio_supported()) { + app->set_audio_streaming_state( + mobile_api::AudioStreamingState::ATTENUATED); + } else { + app->set_audio_streaming_state( + mobile_api::AudioStreamingState::NOT_AUDIBLE); + } + } + ApplicationManagerImpl::instance()->DeactivateApplication(app); + app->set_hmi_level(mobile_api::HMILevel::HMI_BACKGROUND); + break; + } + case hmi_apis::Common_DeactivateReason::NAVIGATIONMAP: + case hmi_apis::Common_DeactivateReason::PHONEMENU: + case hmi_apis::Common_DeactivateReason::SYNCSETTINGS: + case hmi_apis::Common_DeactivateReason::GENERAL: { + if (app->is_media_application()) { + if (mobile_api::HMILevel::HMI_FULL == app->hmi_level()) { + app->set_hmi_level(mobile_api::HMILevel::HMI_LIMITED); + } + } else { + ApplicationManagerImpl::instance()->DeactivateApplication(app); + app->set_hmi_level(mobile_api::HMILevel::HMI_BACKGROUND); + } + break; + } + default: { + LOG4CXX_ERROR_EXT(logger_, "Unknown reason of app deactivation"); + return; + } + } + + MessageHelper::SendHMIStatusNotification(*app); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_registered_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_registered_notification.cc new file mode 100644 index 000000000..26bc396db --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_registered_notification.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_app_registered_notification.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +OnAppRegisteredNotification::OnAppRegisteredNotification( + const MessageSharedPtr& message) : NotificationToHMI(message) { +} + +OnAppRegisteredNotification::~OnAppRegisteredNotification() { +} + +void OnAppRegisteredNotification::Run() { + LOG4CXX_INFO(logger_, "OnAppRegisteredNotification::Run"); + + SendNotification(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_unregistered_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_unregistered_notification.cc new file mode 100644 index 000000000..2bedcb063 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_unregistered_notification.cc @@ -0,0 +1,62 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_app_unregistered_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/event_engine/event.h" + +namespace application_manager { + +namespace commands { + +OnAppUnregisteredNotification::OnAppUnregisteredNotification( + const MessageSharedPtr& message) : NotificationToHMI(message) { +} + +OnAppUnregisteredNotification::~OnAppUnregisteredNotification() { +} + +void OnAppUnregisteredNotification::Run() { + LOG4CXX_INFO(logger_, "OnAppUnregisteredNotification::Run"); + + //sending event for delete VRCommand on PerformInteraction + event_engine::Event event(hmi_apis::FunctionID::BasicCommunication_OnAppUnregistered); + event.set_smart_object(*message_); + event.raise(); + + SendNotification(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_button_event_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_button_event_notification.cc new file mode 100644 index 000000000..e44fde016 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_button_event_notification.cc @@ -0,0 +1,65 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_button_event_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "utils/logger.h" + +namespace application_manager { + +namespace commands { + +namespace hmi { + +OnButtonEventNotification::OnButtonEventNotification( + const MessageSharedPtr& message) : NotificationFromHMI(message) { +} + +OnButtonEventNotification::~OnButtonEventNotification() { +} + +void OnButtonEventNotification::Run() { + LOG4CXX_INFO(logger_, "OnButtonEventNotification::Run"); + + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::OnButtonEventID); + + SendNotificationToMobile(message_); +} + +} // namespace hmi + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_button_press_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_button_press_notification.cc new file mode 100644 index 000000000..f5c65494a --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_button_press_notification.cc @@ -0,0 +1,67 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_button_press_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "utils/logger.h" +#include "application_manager/event_engine/event.h" + +namespace application_manager { + +namespace commands { + +namespace hmi { + +OnButtonPressNotification::OnButtonPressNotification( + const MessageSharedPtr& message) : NotificationFromHMI(message) { +} + +OnButtonPressNotification::~OnButtonPressNotification() { +} + +void OnButtonPressNotification::Run() { + LOG4CXX_INFO(logger_, "OnButtonPressNotification::Run"); + event_engine::Event event(hmi_apis::FunctionID::Buttons_OnButtonPress); + event.set_smart_object(*message_); + event.raise(); + (*message_)[strings::params][strings::function_id] = + static_cast<int>(mobile_apis::FunctionID::eType::OnButtonPressID); + SendNotificationToMobile(message_); +} + +} // namespace hmi + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_device_chosen_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_device_chosen_notification.cc new file mode 100644 index 000000000..537c246f4 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_device_chosen_notification.cc @@ -0,0 +1,60 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_device_chosen_notification.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +OnDeviceChosenNotification::OnDeviceChosenNotification( + const MessageSharedPtr& message) : NotificationFromHMI(message) { +} + +OnDeviceChosenNotification::~OnDeviceChosenNotification() { +} + +void OnDeviceChosenNotification::Run() { + LOG4CXX_INFO(logger_, "OnDeviceChosenNotification::Run"); + + if ((*message_)[strings::msg_params].keyExists(strings::device_info)) { + ApplicationManagerImpl::instance()->ConnectToDevice( + (*message_)[strings::msg_params][strings::device_info][strings::id] + .asInt()); + } +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_driver_distraction_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_driver_distraction_notification.cc new file mode 100644 index 000000000..c4263390e --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_driver_distraction_notification.cc @@ -0,0 +1,85 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include <set> +#include "application_manager/commands/hmi/on_driver_distraction_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +namespace hmi { + +OnDriverDistractionNotification::OnDriverDistractionNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnDriverDistractionNotification::~OnDriverDistractionNotification() { +} + +void OnDriverDistractionNotification::Run() { + LOG4CXX_INFO(logger_, "OnDriverDistractionNotification::Run"); + + const hmi_apis::Common_DriverDistractionState::eType state = + static_cast<hmi_apis::Common_DriverDistractionState::eType>( + (*message_)[strings::msg_params][hmi_notification::state] + .asInt()); + ApplicationManagerImpl::instance()->set_driver_distraction(state); + + smart_objects::SmartObject* on_driver_distraction = + new smart_objects::SmartObject(); + + if (NULL == on_driver_distraction) { + LOG4CXX_ERROR_EXT(logger_, "NULL pointer"); + return; + } + + (*on_driver_distraction)[strings::params][strings::function_id] = + mobile_api::FunctionID::OnDriverDistractionID; + + (*on_driver_distraction)[strings::msg_params][mobile_notification::state] = + state; + + SendNotificationToMobile(on_driver_distraction); +} + +} // namespace hmi + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_exit_all_applications_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_exit_all_applications_notification.cc new file mode 100644 index 000000000..ba65e5ddf --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_exit_all_applications_notification.cc @@ -0,0 +1,88 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_exit_all_applications_notification.h" +#include "application_manager/application_manager_impl.h" +#include "interfaces/HMI_API.h" +#include "utils/signals.h" + +namespace application_manager { + +namespace commands { + +OnExitAllApplicationsNotification::OnExitAllApplicationsNotification( + const MessageSharedPtr& message) : NotificationFromHMI(message) { +} + +OnExitAllApplicationsNotification::~OnExitAllApplicationsNotification() { +} + +void OnExitAllApplicationsNotification::Run() { + LOG4CXX_INFO(logger_, "OnExitAllApplicationsNotification::Run"); + + const hmi_apis::Common_ApplicationsCloseReason::eType reason = + static_cast<hmi_apis::Common_ApplicationsCloseReason::eType>( + (*message_)[strings::msg_params][hmi_request::reason].asInt()); + + mobile_api::AppInterfaceUnregisteredReason::eType mob_reason = + mobile_api::AppInterfaceUnregisteredReason::INVALID_ENUM; + + switch (reason) { + case hmi_apis::Common_ApplicationsCloseReason::IGNITION_OFF: { + mob_reason = mobile_api::AppInterfaceUnregisteredReason::IGNITION_OFF; + break; + } + case hmi_apis::Common_ApplicationsCloseReason::MASTER_RESET: { + mob_reason = mobile_api::AppInterfaceUnregisteredReason::MASTER_RESET; + break; + } + case hmi_apis::Common_ApplicationsCloseReason::FACTORY_DEFAULTS: { + mob_reason = mobile_api::AppInterfaceUnregisteredReason::FACTORY_DEFAULTS; + break; + } + default : { + LOG4CXX_ERROR(logger_, "Unkown Application close reason" << reason); + return; + } + } + + ApplicationManagerImpl::instance()->SetUnregisterAllApplicationsReason( + mob_reason); + + // notify life cycle to stop SDL + utils::ForwardSignal(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_exit_application_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_exit_application_notification.cc new file mode 100644 index 000000000..f74c2bb3a --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_exit_application_notification.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_exit_application_notification.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +OnExitApplicationNotification::OnExitApplicationNotification( + const MessageSharedPtr& message) : NotificationFromHMI(message) { +} + +OnExitApplicationNotification::~OnExitApplicationNotification() { +} + +void OnExitApplicationNotification::Run() { + LOG4CXX_INFO(logger_, "OnExitApplicationNotification::Run"); + + ApplicationManagerImpl::instance()->UnregisterApplication( + (*message_)[strings::msg_params][strings::app_id].asUInt()); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_find_applications.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_find_applications.cc new file mode 100644 index 000000000..bc32ab1cf --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_find_applications.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_find_applications.h" + +namespace application_manager { + +namespace commands { + +OnFindApplications::OnFindApplications(const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnFindApplications::~OnFindApplications() { +} + +void OnFindApplications::Run() { + LOG4CXX_INFO(logger_, "OnFindApplications::Run"); + + // TODO(PV): add UpdateAppsOnDevice to ApplicationManager +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_navi_tbt_client_state_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_navi_tbt_client_state_notification.cc new file mode 100644 index 000000000..a68ae9079 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_navi_tbt_client_state_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_navi_tbt_client_state_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnNaviTBTClientStateNotification::OnNaviTBTClientStateNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnNaviTBTClientStateNotification::~OnNaviTBTClientStateNotification() { +} + +void OnNaviTBTClientStateNotification::Run() { + LOG4CXX_INFO(logger_, "OnNaviTBTClientStateNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::OnTBTClientStateID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_play_tone_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_play_tone_notification.cc new file mode 100644 index 000000000..e05b38d45 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_play_tone_notification.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_play_tone_notification.h" + +namespace application_manager { + +namespace commands { + +OnPlayToneNotification::OnPlayToneNotification(const MessageSharedPtr& message) + : NotificationToHMI(message) { +} + +OnPlayToneNotification::~OnPlayToneNotification() { +} + +void OnPlayToneNotification::Run() { + LOG4CXX_INFO(logger_, "OnPlayToneNotification::Run"); + + SendNotification(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_ready_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ready_notification.cc new file mode 100644 index 000000000..ff870361b --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ready_notification.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_ready_notification.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +OnReadyNotification::OnReadyNotification(const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnReadyNotification::~OnReadyNotification() { +} + +void OnReadyNotification::Run() { + LOG4CXX_INFO(logger_, "OnReadyNotification::Run"); + + ApplicationManagerImpl::instance()->OnHMIStartedCooperation(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_sdl_close_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_sdl_close_notification.cc new file mode 100644 index 000000000..70240b4bf --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_sdl_close_notification.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_sdl_close_notification.h" + +namespace application_manager { + +namespace commands { + +OnSDLCloseNotification::OnSDLCloseNotification( + const MessageSharedPtr& message) : NotificationToHMI(message) { +} + +OnSDLCloseNotification::~OnSDLCloseNotification() { +} + +void OnSDLCloseNotification::Run() { + LOG4CXX_INFO(logger_, "OnSdlCloseNotification::Run"); + + SendNotification(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_show_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_show_notification.cc new file mode 100644 index 000000000..b33a0310e --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_show_notification.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_show_notification.h" + +namespace application_manager { + +namespace commands { + +OnShowNotification::OnShowNotification(const MessageSharedPtr& message) + : NotificationToHMI(message) { +} + +OnShowNotification::~OnShowNotification() { +} + +void OnShowNotification::Run() { + LOG4CXX_INFO(logger_, "OnShowNotification::Run"); + + SendNotification(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_start_device_discovery.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_start_device_discovery.cc new file mode 100644 index 000000000..fc5ffed42 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_start_device_discovery.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_start_device_discovery.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +OnStartDeviceDiscovery::OnStartDeviceDiscovery(const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnStartDeviceDiscovery::~OnStartDeviceDiscovery() { +} + +void OnStartDeviceDiscovery::Run() { + LOG4CXX_INFO(logger_, "OnStartDeviceDiscovery::Run"); + + ApplicationManagerImpl::instance()->StartDevicesDiscovery(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_system_context_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_system_context_notification.cc new file mode 100644 index 000000000..1a4bab0b5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_system_context_notification.cc @@ -0,0 +1,95 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_system_context_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" + +namespace application_manager { + +namespace { +using namespace mobile_api::AudioStreamingState; + +void UpdateVRState(ApplicationManagerImpl* app_mgr, + bool vr_session_is_active_on_hmi) { + // If VR session state is now different (has changed) on HMI + if (app_mgr->vr_session_started() != vr_session_is_active_on_hmi) { + app_mgr->set_vr_session_started(vr_session_is_active_on_hmi); + } +} + +} + +namespace commands { +using namespace mobile_api::SystemContext; + +OnSystemContextNotification::OnSystemContextNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnSystemContextNotification::~OnSystemContextNotification() { +} + +void OnSystemContextNotification::Run() { + LOG4CXX_INFO(logger_, "OnSystemContextNotification::Run"); + + ApplicationManagerImpl* app_mgr = ApplicationManagerImpl::instance(); + const std::set<ApplicationSharedPtr>& app_list = app_mgr->applications(); + std::set<ApplicationSharedPtr>::const_iterator it = app_list.begin(); + + mobile_api::SystemContext::eType system_context = + static_cast<mobile_api::SystemContext::eType>( + (*message_)[strings::msg_params][hmi_notification::system_context].asInt()); + + UpdateVRState(app_mgr, SYSCTXT_VRSESSION == system_context); + + // SDLAQ-CRS-833 implementation + for (; app_list.end() != it; ++it) { + if (mobile_api::HMILevel::HMI_FULL == (*it)->hmi_level() || + mobile_api::HMILevel::HMI_LIMITED == (*it)->hmi_level()) { + + // If context actually changed + if (system_context != (*it)->system_context()) { + (*it)->set_system_context(system_context); + } + + MessageHelper::SendHMIStatusNotification((*(*it))); + } + } +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_system_request_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_system_request_notification.cc new file mode 100644 index 000000000..d390cd863 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_system_request_notification.cc @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_system_request_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnSystemRequestNotification::OnSystemRequestNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnSystemRequestNotification::~OnSystemRequestNotification() { +} + +void OnSystemRequestNotification::Run() { + LOG4CXX_INFO(logger_, "OnSystemRequestNotification::Run"); + + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnSystemRequestID); + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_language_change_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_language_change_notification.cc new file mode 100644 index 000000000..7efa49634 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_language_change_notification.cc @@ -0,0 +1,91 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_tts_language_change_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnTTSLanguageChangeNotification::OnTTSLanguageChangeNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnTTSLanguageChangeNotification::~OnTTSLanguageChangeNotification() { +} + +void OnTTSLanguageChangeNotification::Run() { + LOG4CXX_INFO(logger_, "OnTTSLanguageChangeNotification::Run"); + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + + hmi_capabilities.set_active_tts_language( + static_cast<hmi_apis::Common_Language::eType>( + (*message_)[strings::msg_params][strings::language].asInt())); + + (*message_)[strings::msg_params][strings::hmi_display_language] = + hmi_capabilities.active_ui_language(); + + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::OnLanguageChangeID); + + const std::set<ApplicationSharedPtr> applications = + ApplicationManagerImpl::instance()->applications(); + + std::set<ApplicationSharedPtr>::iterator it = applications.begin(); + for (;applications.end() != it; ++it) { + ApplicationSharedPtr app = (*it); + (*message_)[strings::params][strings::connection_key] = app->app_id(); + SendNotificationToMobile(message_); + + if (static_cast<int>(app->language()) + != (*message_)[strings::msg_params][strings::language].asInt()) { + app->set_hmi_level(mobile_api::HMILevel::HMI_NONE); + + MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile( + app->app_id(), + mobile_api::AppInterfaceUnregisteredReason::LANGUAGE_CHANGE); + ApplicationManagerImpl::instance()->UnregisterApplication(app->app_id()); + } + } +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_started_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_started_notification.cc new file mode 100644 index 000000000..c3c8daeea --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_started_notification.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_tts_started_notification.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +OnTTSStartedNotification::OnTTSStartedNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnTTSStartedNotification::~OnTTSStartedNotification() { +} + +void OnTTSStartedNotification::Run() { + LOG4CXX_INFO(logger_, "OnTTSStartedNotification::Run"); + + ApplicationManagerImpl::instance()->Mute(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_stopped_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_stopped_notification.cc new file mode 100644 index 000000000..55be65828 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_stopped_notification.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_tts_stopped_notification.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +OnTTSStoppedNotification::OnTTSStoppedNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnTTSStoppedNotification::~OnTTSStoppedNotification() { +} + +void OnTTSStoppedNotification::Run() { + LOG4CXX_INFO(logger_, "OnTTSStoppedNotification::Run"); + + ApplicationManagerImpl::instance()->Unmute(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_command_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_command_notification.cc new file mode 100644 index 000000000..4ed5839e5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_command_notification.cc @@ -0,0 +1,62 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_ui_command_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnUICommandNotification::OnUICommandNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnUICommandNotification::~OnUICommandNotification() { +} + +void OnUICommandNotification::Run() { + LOG4CXX_INFO(logger_, "OnUICommandNotification::Run"); + + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnCommandID); + + (*message_)[strings::msg_params][strings::trigger_source] = + static_cast<int32_t>(mobile_apis::TriggerSource::TS_MENU); + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_keyboard_input_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_keyboard_input_notification.cc new file mode 100644 index 000000000..45ff7425b --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_keyboard_input_notification.cc @@ -0,0 +1,63 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_ui_keyboard_input_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +namespace hmi { + +OnUIKeyBoardInputNotification::OnUIKeyBoardInputNotification( + const MessageSharedPtr& message) : NotificationFromHMI(message) { +} + +OnUIKeyBoardInputNotification::~OnUIKeyBoardInputNotification() { +} + +void OnUIKeyBoardInputNotification::Run() { + LOG4CXX_INFO(logger_, "OnUIKeyBoardInputNotification::Run"); + + //prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + mobile_apis::FunctionID::OnKeyboardInputID; + SendNotificationToMobile(message_); +} + +} // namespace hmi + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_language_change_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_language_change_notification.cc new file mode 100644 index 000000000..115ff384f --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_language_change_notification.cc @@ -0,0 +1,93 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_ui_language_change_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnUILanguageChangeNotification::OnUILanguageChangeNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnUILanguageChangeNotification::~OnUILanguageChangeNotification() { +} + +void OnUILanguageChangeNotification::Run() { + LOG4CXX_INFO(logger_, "OnUILanguageChangeNotification::Run"); + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + + hmi_capabilities.set_active_ui_language( + static_cast<hmi_apis::Common_Language::eType>( + (*message_)[strings::msg_params][strings::language].asInt())); + + (*message_)[strings::msg_params][strings::hmi_display_language] = + (*message_)[strings::msg_params][strings::language]; + + (*message_)[strings::msg_params][strings::language] = + hmi_capabilities.active_vr_language(); + + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::OnLanguageChangeID); + + const std::set<ApplicationSharedPtr> applications = + ApplicationManagerImpl::instance()->applications(); + + std::set<ApplicationSharedPtr>::iterator it = applications.begin(); + for (;applications.end() != it; ++it) { + ApplicationSharedPtr app = *it; + (*message_)[strings::params][strings::connection_key] = app->app_id(); + SendNotificationToMobile(message_); + + if (app->ui_language() != (*message_)[strings::msg_params] + [strings::hmi_display_language].asInt()) { + + MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile( + app->app_id(), + mobile_api::AppInterfaceUnregisteredReason::LANGUAGE_CHANGE); + ApplicationManagerImpl::instance()->UnregisterApplication(app->app_id(), true); + } + } +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_reset_timeout_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_reset_timeout_notification.cc new file mode 100644 index 000000000..357bfc4cb --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_reset_timeout_notification.cc @@ -0,0 +1,63 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_ui_reset_timeout_notification.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +namespace hmi { + +OnUIResetTimeoutNotification::OnUIResetTimeoutNotification( + const MessageSharedPtr& message) : NotificationFromHMI(message) { +} + +OnUIResetTimeoutNotification::~OnUIResetTimeoutNotification() { +} + +void OnUIResetTimeoutNotification::Run() { + LOG4CXX_INFO(logger_, "OnUIResetTimeoutNotification::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_OnResetTimeout); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace hmi + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_touch_event_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_touch_event_notification.cc new file mode 100644 index 000000000..7868e8119 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_touch_event_notification.cc @@ -0,0 +1,63 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_ui_touch_event_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +namespace hmi { + +OnUITouchEventNotification::OnUITouchEventNotification( + const MessageSharedPtr& message) : NotificationFromHMI(message) { +} + +OnUITouchEventNotification::~OnUITouchEventNotification() { +} + +void OnUITouchEventNotification::Run() { + LOG4CXX_INFO(logger_, "OnUITouchEventNotification::Run"); + + //prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + mobile_apis::FunctionID::OnTouchEventID; + SendNotificationToMobile(message_); +} + +} // namespace hmi + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_update_device_list.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_update_device_list.cc new file mode 100644 index 000000000..737e62c74 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_update_device_list.cc @@ -0,0 +1,52 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/on_update_device_list.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +OnUpdateDeviceList::OnUpdateDeviceList(const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnUpdateDeviceList::~OnUpdateDeviceList() { +} + +void OnUpdateDeviceList::Run() { + LOG4CXX_INFO(logger_, "OnUpdateDeviceList::Run"); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_acc_pedal_position_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_acc_pedal_position_notification.cc new file mode 100644 index 000000000..be0c4ebb6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_acc_pedal_position_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIAccPedalPositionNotification::OnVIAccPedalPositionNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIAccPedalPositionNotification::~OnVIAccPedalPositionNotification() { +} + +void OnVIAccPedalPositionNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIAccPedalPositionNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_belt_status_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_belt_status_notification.cc new file mode 100644 index 000000000..688a5c1fb --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_belt_status_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_belt_status_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIBeltStatusNotification::OnVIBeltStatusNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIBeltStatusNotification::~OnVIBeltStatusNotification() { +} + +void OnVIBeltStatusNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIBeltStatusNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_body_information_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_body_information_notification.cc new file mode 100644 index 000000000..e80a2edcf --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_body_information_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_body_information_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIBodyInformationNotification::OnVIBodyInformationNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIBodyInformationNotification::~OnVIBodyInformationNotification() { +} + +void OnVIBodyInformationNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIBodyInformationNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_device_status_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_device_status_notification.cc new file mode 100644 index 000000000..4669398da --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_device_status_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_device_status_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIDeviceStatusNotification::OnVIDeviceStatusNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIDeviceStatusNotification::~OnVIDeviceStatusNotification() { +} + +void OnVIDeviceStatusNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIDeviceStatusNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_driver_braking_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_driver_braking_notification.cc new file mode 100644 index 000000000..8b61d0af2 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_driver_braking_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_driver_braking_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIDriverBrakingNotification::OnVIDriverBrakingNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIDriverBrakingNotification::~OnVIDriverBrakingNotification() { +} + +void OnVIDriverBrakingNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIDriverBrakingNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_engine_torque_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_engine_torque_notification.cc new file mode 100644 index 000000000..1b0989b1e --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_engine_torque_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_engine_torque_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIEngineTorqueNotification::OnVIEngineTorqueNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIEngineTorqueNotification::~OnVIEngineTorqueNotification() { +} + +void OnVIEngineTorqueNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIEngineTorqueNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_external_temperature_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_external_temperature_notification.cc new file mode 100644 index 000000000..f7a921359 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_external_temperature_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_external_temperature_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIExternalTemperatureNotification::OnVIExternalTemperatureNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIExternalTemperatureNotification::~OnVIExternalTemperatureNotification() { +} + +void OnVIExternalTemperatureNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIExternalTemperatureNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_notification.cc new file mode 100644 index 000000000..97d797b63 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_fuel_level_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIFuelLevelNotification::OnVIFuelLevelNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIFuelLevelNotification::~OnVIFuelLevelNotification() { +} + +void OnVIFuelLevelNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIFuelLevelNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_state_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_state_notification.cc new file mode 100644 index 000000000..0024f17a8 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_state_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_fuel_level_state_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIFuelLevelStateNotification::OnVIFuelLevelStateNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIFuelLevelStateNotification::~OnVIFuelLevelStateNotification() { +} + +void OnVIFuelLevelStateNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIFuelLevelStateNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_gps_data_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_gps_data_notification.cc new file mode 100644 index 000000000..5b7ec7297 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_gps_data_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_gps_data_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIGpsDataNotification::OnVIGpsDataNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIGpsDataNotification::~OnVIGpsDataNotification() { +} + +void OnVIGpsDataNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIGpsDataNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_head_lamp_status_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_head_lamp_status_notification.cc new file mode 100644 index 000000000..355c00f0c --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_head_lamp_status_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_head_lamp_status_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIHeadLampStatusNotification::OnVIHeadLampStatusNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIHeadLampStatusNotification::~OnVIHeadLampStatusNotification() { +} + +void OnVIHeadLampStatusNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIHeadLampStatusNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_instant_fuel_consumption_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_instant_fuel_consumption_notification.cc new file mode 100644 index 000000000..17240bce6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_instant_fuel_consumption_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIInstantFuelConsumptionNotification::OnVIInstantFuelConsumptionNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIInstantFuelConsumptionNotification::~OnVIInstantFuelConsumptionNotification() { +} + +void OnVIInstantFuelConsumptionNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIInstantFuelConsumptionNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_my_key_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_my_key_notification.cc new file mode 100644 index 000000000..1caaecb44 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_my_key_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_my_key_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIMyKeyNotification::OnVIMyKeyNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIMyKeyNotification::~OnVIMyKeyNotification() { +} + +void OnVIMyKeyNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIMyKeyNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_odometer_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_odometer_notification.cc new file mode 100644 index 000000000..02127a138 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_odometer_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_odometer_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIOdometerNotification::OnVIOdometerNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIOdometerNotification::~OnVIOdometerNotification() { +} + +void OnVIOdometerNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIOdometerNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_prndl_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_prndl_notification.cc new file mode 100644 index 000000000..4692191cb --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_prndl_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_prndl_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIPrndlNotification::OnVIPrndlNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIPrndlNotification::~OnVIPrndlNotification() { +} + +void OnVIPrndlNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIPrndlNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_rpm_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_rpm_notification.cc new file mode 100644 index 000000000..b16421903 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_rpm_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_rpm_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIRpmNotification::OnVIRpmNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIRpmNotification::~OnVIRpmNotification() { +} + +void OnVIRpmNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIRpmNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_speed_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_speed_notification.cc new file mode 100644 index 000000000..6bc1e8b2c --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_speed_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_speed_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVISpeedNotification::OnVISpeedNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVISpeedNotification::~OnVISpeedNotification() { +} + +void OnVISpeedNotification::Run() { + LOG4CXX_INFO(logger_, "OnVISpeedNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_steering_wheel_angle_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_steering_wheel_angle_notification.cc new file mode 100644 index 000000000..853b4eeea --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_steering_wheel_angle_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVISteeringWheelAngleNotification::OnVISteeringWheelAngleNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVISteeringWheelAngleNotification::~OnVISteeringWheelAngleNotification() { +} + +void OnVISteeringWheelAngleNotification::Run() { + LOG4CXX_INFO(logger_, "OnVISteeringWheelAngleNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_tire_pressure_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_tire_pressure_notification.cc new file mode 100644 index 000000000..01ac7e9f8 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_tire_pressure_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_tire_pressure_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVITirePressureNotification::OnVITirePressureNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVITirePressureNotification::~OnVITirePressureNotification() { +} + +void OnVITirePressureNotification::Run() { + LOG4CXX_INFO(logger_, "OnVITirePressureNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_vehicle_data_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_vehicle_data_notification.cc new file mode 100644 index 000000000..eda88ef60 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_vehicle_data_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_vehicle_data_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIVehicleDataNotification::OnVIVehicleDataNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIVehicleDataNotification::~OnVIVehicleDataNotification() { +} + +void OnVIVehicleDataNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIVehicleDataNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_vin_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_vin_notification.cc new file mode 100644 index 000000000..546dc0d3c --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_vin_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_vin_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIVinNotification::OnVIVinNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIVinNotification::~OnVIVinNotification() { +} + +void OnVIVinNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIVinNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_wiper_status_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_wiper_status_notification.cc new file mode 100644 index 000000000..101427df0 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_wiper_status_notification.cc @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vi_wiper_status_notification.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVIWiperStatusNotification::OnVIWiperStatusNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVIWiperStatusNotification::~OnVIWiperStatusNotification() { +} + +void OnVIWiperStatusNotification::Run() { + LOG4CXX_INFO(logger_, "OnVIWiperStatusNotification::Run"); + + // prepare SmartObject for mobile factory + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID); + + SendNotificationToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_command_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_command_notification.cc new file mode 100644 index 000000000..b4adc2a63 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_command_notification.cc @@ -0,0 +1,108 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vr_command_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/message_helper.h" +#include "config_profile/profile.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" +#include "application_manager/event_engine/event.h" + +namespace application_manager { + +namespace commands { + +OnVRCommandNotification::OnVRCommandNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVRCommandNotification::~OnVRCommandNotification() { +} + +void OnVRCommandNotification::Run() { + LOG4CXX_INFO(logger_, "OnVRCommandNotification::Run"); + + ApplicationSharedPtr active_app = ApplicationManagerImpl::instance() + ->active_application(); + const uint32_t cmd_id = (*message_)[strings::msg_params][strings::cmd_id] + .asUInt(); + uint32_t max_cmd_id = profile::Profile::instance()->max_cmd_id(); + if (!active_app) { + if (cmd_id > max_cmd_id + 1) { + MessageHelper::SendActivateAppToHMI(cmd_id - max_cmd_id); + } else { + LOG4CXX_ERROR(logger_, "NULL pointer"); + } + return; + } + + // Check if this is one of standart VR commands (i.e. "Help") + if (cmd_id > max_cmd_id + 1) { + LOG4CXX_INFO(logger_, "Switched App"); + MessageHelper::SendActivateAppToHMI(cmd_id - max_cmd_id); + return; + } + // Check if this is "Help" + if (cmd_id == max_cmd_id + 1) { + return; + } + const uint32_t app_id = (*message_)[strings::msg_params][strings::app_id] + .asUInt(); + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + if (!app) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + return; + } + /* check if perform interaction is active + * if it is active we should sent to HMI DeleteCommand request + * and PerformInterActionResponse to mobile + */ + if (0 != app->is_perform_interaction_active()) { + event_engine::Event event(hmi_apis::FunctionID::VR_OnCommand); + event.set_smart_object(*message_); + event.raise(); + } else { + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnCommandID); + + (*message_)[strings::msg_params][strings::trigger_source] = + static_cast<int32_t>(mobile_apis::TriggerSource::TS_VR); + SendNotificationToMobile(message_); + } +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_language_change_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_language_change_notification.cc new file mode 100644 index 000000000..72c7546f3 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_language_change_notification.cc @@ -0,0 +1,91 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vr_language_change_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVRLanguageChangeNotification::OnVRLanguageChangeNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVRLanguageChangeNotification::~OnVRLanguageChangeNotification() { +} + +void OnVRLanguageChangeNotification::Run() { + LOG4CXX_INFO(logger_, "OnVRLanguageChangeNotification::Run"); + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + + hmi_capabilities.set_active_vr_language( + static_cast<hmi_apis::Common_Language::eType>( + (*message_)[strings::msg_params][strings::language].asInt())); + + (*message_)[strings::msg_params][strings::hmi_display_language] = + hmi_capabilities.active_ui_language(); + + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::OnLanguageChangeID); + + const std::set<ApplicationSharedPtr> applications = + ApplicationManagerImpl::instance()->applications(); + + std::set<ApplicationSharedPtr>::iterator it = applications.begin(); + for (;applications.end() != it; ++it) { + ApplicationSharedPtr app = (*it); + (*message_)[strings::params][strings::connection_key] = app->app_id(); + SendNotificationToMobile(message_); + int32_t lang = static_cast<int32_t>(app->language()); + if (lang + != (*message_)[strings::msg_params][strings::language].asInt()) { + app->set_hmi_level(mobile_api::HMILevel::HMI_NONE); + + MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile( + app->app_id(), + mobile_api::AppInterfaceUnregisteredReason::LANGUAGE_CHANGE); + ApplicationManagerImpl::instance()->UnregisterApplication(app->app_id(), true); + } + } +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_started_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_started_notification.cc new file mode 100644 index 000000000..be0c54e2d --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_started_notification.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vr_started_notification.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +OnVRStartedNotification::OnVRStartedNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVRStartedNotification::~OnVRStartedNotification() { +} + +void OnVRStartedNotification::Run() { + LOG4CXX_INFO(logger_, "OnVRStartedNotification::Run"); + + ApplicationManagerImpl::instance()->set_vr_session_started(true); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_stopped_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_stopped_notification.cc new file mode 100644 index 000000000..4d46f3735 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_stopped_notification.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/on_vr_stopped_notification.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +OnVRStoppedNotification::OnVRStoppedNotification( + const MessageSharedPtr& message) + : NotificationFromHMI(message) { +} + +OnVRStoppedNotification::~OnVRStoppedNotification() { +} + +void OnVRStoppedNotification::Run() { + LOG4CXX_INFO(logger_, "OnVRStoppedNotification::Run"); + + ApplicationManagerImpl::instance()->set_vr_session_started(false); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/request_to_hmi.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/request_to_hmi.cc new file mode 100644 index 000000000..aa8c97408 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/request_to_hmi.cc @@ -0,0 +1,67 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/request_to_hmi.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +RequestToHMI::RequestToHMI(const MessageSharedPtr& message) + : CommandImpl(message) { +} + +RequestToHMI::~RequestToHMI() { +} + +bool RequestToHMI::Init() { + return true; +} + +bool RequestToHMI::CleanUp() { + return true; +} + +void RequestToHMI::Run() { +} + +void RequestToHMI::SendRequest() { + (*message_)[strings::params][strings::protocol_type] = hmi_protocol_type_; + (*message_)[strings::params][strings::protocol_version] = protocol_version_; + + ApplicationManagerImpl::instance()->SendMessageToHMI(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/response_from_hmi.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/response_from_hmi.cc new file mode 100644 index 000000000..bba5d7d1e --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/response_from_hmi.cc @@ -0,0 +1,105 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/response_from_hmi.h" +#include "application_manager/application_manager_impl.h" +#include "smart_objects/smart_object.h" + +namespace application_manager { + +namespace commands { + +ResponseFromHMI::ResponseFromHMI(const MessageSharedPtr& message) + : CommandImpl(message) { + //If it is error response, shift info + if ((*message)[strings::params].keyExists(hmi_response::message)) { + (*message)[strings::msg_params][strings::info] = + (*message)[strings::params][hmi_response::message]; + } +} + +ResponseFromHMI::~ResponseFromHMI() { +} + +bool ResponseFromHMI::Init() { + return true; +} + +bool ResponseFromHMI::CleanUp() { + return true; +} + +void ResponseFromHMI::Run() { +} + +void ResponseFromHMI::SendResponseToMobile(const MessageSharedPtr& message) { + (*message)[strings::params][strings::message_type] = MessageType::kResponse; + + ApplicationManagerImpl::instance()->ManageMobileCommand(message); +} + +void ResponseFromHMI::CreateHMIRequest( + const hmi_apis::FunctionID::eType& function_id, + const NsSmart::SmartObject& msg_params) const { + + NsSmartDeviceLink::NsSmartObjects::SmartObject* result = + new NsSmartDeviceLink::NsSmartObjects::SmartObject; + + if (!result) { + LOG4CXX_ERROR(logger_, "Memory allocation failed."); + return; + } + + // get hmi correlation id for chaining further request from this object + const uint32_t hmi_correlation_id_ = ApplicationManagerImpl::instance() + ->GetNextHMICorrelationID(); + + NsSmartDeviceLink::NsSmartObjects::SmartObject& request = *result; + request[strings::params][strings::message_type] = MessageType::kRequest; + request[strings::params][strings::function_id] = function_id; + request[strings::params][strings::correlation_id] = hmi_correlation_id_; + request[strings::params][strings::protocol_version] = + CommandImpl::protocol_version_; + request[strings::params][strings::protocol_type] = + CommandImpl::hmi_protocol_type_; + + request[strings::msg_params] = msg_params; + + if (!ApplicationManagerImpl::instance()->ManageHMICommand(result)) { + LOG4CXX_ERROR(logger_, "Unable to send request"); + return; + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_change_registration_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_change_registration_request.cc new file mode 100644 index 000000000..638503d16 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_change_registration_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/tts_change_registration_request.h" + +namespace application_manager { + +namespace commands { + +TTSChangeRegistrationRequest::TTSChangeRegistrationRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +TTSChangeRegistrationRequest::~TTSChangeRegistrationRequest() { +} + +void TTSChangeRegistrationRequest::Run() { + LOG4CXX_INFO(logger_, "TTSChangeRegistrationRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_change_registration_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_change_registration_response.cc new file mode 100644 index 000000000..67e48b4ed --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_change_registration_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/tts_change_registration_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +TTSChangeRegistratioResponse::TTSChangeRegistratioResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +TTSChangeRegistratioResponse::~TTSChangeRegistratioResponse() { +} + +void TTSChangeRegistratioResponse::Run() { + LOG4CXX_INFO(logger_, "TTSChangeRegistratioResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::TTS_ChangeRegistration); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_capabilities_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_capabilities_request.cc new file mode 100644 index 000000000..59cf50b38 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_capabilities_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/tts_get_capabilities_request.h" + +namespace application_manager { + +namespace commands { + +TTSGetCapabilitiesRequest::TTSGetCapabilitiesRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +TTSGetCapabilitiesRequest::~TTSGetCapabilitiesRequest() { +} + +void TTSGetCapabilitiesRequest::Run() { + LOG4CXX_INFO(logger_, "TTSGetCapabilitiesRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_capabilities_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_capabilities_response.cc new file mode 100644 index 000000000..f7309822d --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_capabilities_response.cc @@ -0,0 +1,67 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/tts_get_capabilities_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +TTSGetCapabilitiesResponse::TTSGetCapabilitiesResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +TTSGetCapabilitiesResponse::~TTSGetCapabilitiesResponse() { +} + +void TTSGetCapabilitiesResponse::Run() { + LOG4CXX_INFO(logger_, "TTSGetCapabilitiesResponse::Run"); + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + if ((*message_)[strings::msg_params].keyExists(hmi_response::speech_capabilities)) { + hmi_capabilities.set_speech_capabilities( + (*message_)[strings::msg_params][hmi_response::speech_capabilities]); + } + if ((*message_)[strings::msg_params].keyExists( + hmi_response::prerecorded_speech_capabilities)) { + hmi_capabilities.set_prerecorded_speech( + (*message_)[strings::msg_params] + [hmi_response::prerecorded_speech_capabilities]); + } + +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_language_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_language_request.cc new file mode 100644 index 000000000..9f2fe7134 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_language_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/tts_get_language_request.h" + +namespace application_manager { + +namespace commands { + +TTSGetLanguageRequest::TTSGetLanguageRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +TTSGetLanguageRequest::~TTSGetLanguageRequest() { +} + +void TTSGetLanguageRequest::Run() { + LOG4CXX_INFO(logger_, "TTSGetLanguageRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_language_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_language_response.cc new file mode 100644 index 000000000..e26fa8773 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_language_response.cc @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/tts_get_language_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +TTSGetLanguageResponse::TTSGetLanguageResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +TTSGetLanguageResponse::~TTSGetLanguageResponse() { +} + +void TTSGetLanguageResponse::Run() { + LOG4CXX_INFO(logger_, "TTSGetLanguageResponse::Run"); + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + + hmi_capabilities.set_active_tts_language( + static_cast<hmi_apis::Common_Language::eType>( + (*message_)[strings::msg_params][hmi_response::language].asInt())); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_request.cc new file mode 100644 index 000000000..08c1d8244 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/tts_get_supported_languages_request.h" + +namespace application_manager { + +namespace commands { + +TTSGetSupportedLanguagesRequest::TTSGetSupportedLanguagesRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +TTSGetSupportedLanguagesRequest::~TTSGetSupportedLanguagesRequest() { +} + +void TTSGetSupportedLanguagesRequest::Run() { + LOG4CXX_INFO(logger_, "TTSGetSupportedLanguagesRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_response.cc new file mode 100644 index 000000000..aa041f66b --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_response.cc @@ -0,0 +1,66 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/tts_get_supported_languages_response.h" +#include "application_manager/application_manager_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +TTSGetSupportedLanguagesResponse::TTSGetSupportedLanguagesResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +TTSGetSupportedLanguagesResponse::~TTSGetSupportedLanguagesResponse() { +} + +void TTSGetSupportedLanguagesResponse::Run() { + LOG4CXX_INFO(logger_, "TTSGetSupportedLanguagesResponse::Run"); + + const hmi_apis::Common_Result::eType code = + static_cast<hmi_apis::Common_Result::eType>( + (*message_)[strings::params][hmi_response::code].asInt()); + + if (hmi_apis::Common_Result::SUCCESS == code) { + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + + hmi_capabilities.set_tts_supported_languages( + (*message_)[strings::msg_params][hmi_response::languages]); + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_is_ready_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_is_ready_request.cc new file mode 100644 index 000000000..7733de488 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_is_ready_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/tts_is_ready_request.h" + +namespace application_manager { + +namespace commands { + +TTSIsReadyRequest::TTSIsReadyRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +TTSIsReadyRequest::~TTSIsReadyRequest() { +} + +void TTSIsReadyRequest::Run() { + LOG4CXX_INFO(logger_, "TTSIsReadyRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_is_ready_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_is_ready_response.cc new file mode 100644 index 000000000..fb3cb4858 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_is_ready_response.cc @@ -0,0 +1,62 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/tts_is_ready_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +TTSIsReadyResponse::TTSIsReadyResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +TTSIsReadyResponse::~TTSIsReadyResponse() { +} + +void TTSIsReadyResponse::Run() { + LOG4CXX_INFO(logger_, "TTSIsReadyResponse::Run"); + smart_objects::SmartObject& object = *message_; + + bool is_available = false; + if (object[strings::msg_params].keyExists(strings::available)) { + is_available = object[strings::msg_params][strings::available].asBool(); + } + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + hmi_capabilities.set_is_tts_cooperating(is_available); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_perform_interaction_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_perform_interaction_request.cc new file mode 100644 index 000000000..a61902123 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_perform_interaction_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/tts_perform_interaction_request.h" + +namespace application_manager { + +namespace commands { + +TTSPerformInteractionRequest::TTSPerformInteractionRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +TTSPerformInteractionRequest::~TTSPerformInteractionRequest() { +} + +void TTSPerformInteractionRequest::Run() { + LOG4CXX_INFO(logger_, "TTSPerformInteractionRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_perform_interaction_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_perform_interaction_response.cc new file mode 100644 index 000000000..2ddacca6b --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_perform_interaction_response.cc @@ -0,0 +1,52 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/tts_perform_interaction_response.h" + +namespace application_manager { + +namespace commands { + +TTSPerformInteractionResponse::TTSPerformInteractionResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +TTSPerformInteractionResponse::~TTSPerformInteractionResponse() { +} + +void TTSPerformInteractionResponse::Run() { + LOG4CXX_INFO(logger_, "TTSPerformInteractionResponse::Run"); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_set_global_properties_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_set_global_properties_request.cc new file mode 100644 index 000000000..04f1380d9 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_set_global_properties_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/tts_set_global_properties_request.h" + +namespace application_manager { + +namespace commands { + +TTSSetGlobalPropertiesRequest::TTSSetGlobalPropertiesRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +TTSSetGlobalPropertiesRequest::~TTSSetGlobalPropertiesRequest() { +} + +void TTSSetGlobalPropertiesRequest::Run() { + LOG4CXX_INFO(logger_, "TTSSetGlobalPropertiesRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_set_global_properties_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_set_global_properties_response.cc new file mode 100644 index 000000000..c90655186 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_set_global_properties_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/tts_set_global_properties_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +TTSSetGlobalPropertiesResponse::TTSSetGlobalPropertiesResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +TTSSetGlobalPropertiesResponse::~TTSSetGlobalPropertiesResponse() { +} + +void TTSSetGlobalPropertiesResponse::Run() { + LOG4CXX_INFO(logger_, "TTSSetGlobalPropertiesResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::TTS_SetGlobalProperties); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_speak_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_speak_request.cc new file mode 100644 index 000000000..9b4bd6858 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_speak_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/tts_speak_request.h" + +namespace application_manager { + +namespace commands { + +TTSSpeakRequest::TTSSpeakRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +TTSSpeakRequest::~TTSSpeakRequest() { +} + +void TTSSpeakRequest::Run() { + LOG4CXX_INFO(logger_, "TTSSpeakRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_speak_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_speak_response.cc new file mode 100644 index 000000000..9b9e43dbe --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_speak_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/tts_speak_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +TTSSpeakResponse::TTSSpeakResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +TTSSpeakResponse::~TTSSpeakResponse() { +} + +void TTSSpeakResponse::Run() { + LOG4CXX_INFO(logger_, "TTSSpeakResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::TTS_Speak); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_stop_speaking_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_stop_speaking_request.cc new file mode 100644 index 000000000..107cb7933 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_stop_speaking_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/tts_stop_speaking_request.h" + +namespace application_manager { + +namespace commands { + +TTSStopSpeakingRequest::TTSStopSpeakingRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +TTSStopSpeakingRequest::~TTSStopSpeakingRequest() { +} + +void TTSStopSpeakingRequest::Run() { + LOG4CXX_INFO(logger_, "TTSStopSpeakingRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_stop_speaking_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_stop_speaking_response.cc new file mode 100644 index 000000000..9bd4f8966 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_stop_speaking_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/tts_stop_speaking_response.h" + +#include "application_manager/event_engine/event.h" + +namespace application_manager { + +namespace commands { + +TTSStopSpeakingResponse::TTSStopSpeakingResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +TTSStopSpeakingResponse::~TTSStopSpeakingResponse() { +} + +void TTSStopSpeakingResponse::Run() { + LOG4CXX_INFO(logger_, "TTSStopSpeakingResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::TTS_StopSpeaking); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_command_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_command_request.cc new file mode 100644 index 000000000..9aa5d2e2d --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_command_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_add_command_request.h" + +namespace application_manager { + +namespace commands { + +UIAddCommandRequest::UIAddCommandRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UIAddCommandRequest::~UIAddCommandRequest() { +} + +void UIAddCommandRequest::Run() { + LOG4CXX_INFO(logger_, "UIAddCommandRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_command_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_command_response.cc new file mode 100644 index 000000000..21b34e063 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_command_response.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_add_command_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UIAddCommandResponse::UIAddCommandResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UIAddCommandResponse::~UIAddCommandResponse() { +} + +void UIAddCommandResponse::Run() { + LOG4CXX_INFO(logger_, "UIAddCommandResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_AddCommand); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_submenu_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_submenu_request.cc new file mode 100644 index 000000000..7a9c5c6fe --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_submenu_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_add_submenu_request.h" + +namespace application_manager { + +namespace commands { + +UIAddSubmenuRequest::UIAddSubmenuRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UIAddSubmenuRequest::~UIAddSubmenuRequest() { +} + +void UIAddSubmenuRequest::Run() { + LOG4CXX_INFO(logger_, "UIAddCommandRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_submenu_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_submenu_response.cc new file mode 100644 index 000000000..af88de2b4 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_submenu_response.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_add_submenu_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UIAddSubmenuResponse::UIAddSubmenuResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UIAddSubmenuResponse::~UIAddSubmenuResponse() { +} + +void UIAddSubmenuResponse::Run() { + LOG4CXX_INFO(logger_, "UIAddSubmenuResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_AddSubMenu); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_alert_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_alert_request.cc new file mode 100644 index 000000000..f8c9ed570 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_alert_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_alert_request.h" + +namespace application_manager { + +namespace commands { + +UIAlertRequest::UIAlertRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UIAlertRequest::~UIAlertRequest() { +} + +void UIAlertRequest::Run() { + LOG4CXX_INFO(logger_, "UIAlertRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_alert_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_alert_response.cc new file mode 100644 index 000000000..289b90d29 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_alert_response.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_alert_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UIAlertResponse::UIAlertResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UIAlertResponse::~UIAlertResponse() { +} + +void UIAlertResponse::Run() { + LOG4CXX_INFO(logger_, "UIAlertResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_Alert); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_change_registration_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_change_registration_request.cc new file mode 100644 index 000000000..fbba2b402 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_change_registration_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_change_registration_request.h" + +namespace application_manager { + +namespace commands { + +UIChangeRegistrationRequest::UIChangeRegistrationRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UIChangeRegistrationRequest::~UIChangeRegistrationRequest() { +} + +void UIChangeRegistrationRequest::Run() { + LOG4CXX_INFO(logger_, "UIChangeRegistrationRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_change_registration_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_change_registration_response.cc new file mode 100644 index 000000000..16447077d --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_change_registration_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_change_registration_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UIChangeRegistratioResponse::UIChangeRegistratioResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UIChangeRegistratioResponse::~UIChangeRegistratioResponse() { +} + +void UIChangeRegistratioResponse::Run() { + LOG4CXX_INFO(logger_, "UIChangeRegistratioResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_ChangeRegistration); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_command_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_command_request.cc new file mode 100644 index 000000000..23fb4c67f --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_command_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_delete_command_request.h" + +namespace application_manager { + +namespace commands { + +UIDeleteCommandRequest::UIDeleteCommandRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UIDeleteCommandRequest::~UIDeleteCommandRequest() { +} + +void UIDeleteCommandRequest::Run() { + LOG4CXX_INFO(logger_, "UIDeleteCommandRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_command_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_command_response.cc new file mode 100644 index 000000000..0ac32877c --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_command_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_delete_command_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UIDeleteCommandResponse::UIDeleteCommandResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UIDeleteCommandResponse::~UIDeleteCommandResponse() { +} + +void UIDeleteCommandResponse::Run() { + LOG4CXX_INFO(logger_, "UIDeleteCommandResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_DeleteCommand); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_submenu_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_submenu_request.cc new file mode 100644 index 000000000..41f356b98 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_submenu_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_delete_submenu_request.h" + +namespace application_manager { + +namespace commands { + +UIDeleteSubmenuRequest::UIDeleteSubmenuRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UIDeleteSubmenuRequest::~UIDeleteSubmenuRequest() { +} + +void UIDeleteSubmenuRequest::Run() { + LOG4CXX_INFO(logger_, "UIDeleteSubmenuRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_submenu_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_submenu_response.cc new file mode 100644 index 000000000..5a3359b72 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_submenu_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_delete_submenu_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UIDeleteSubmenuResponse::UIDeleteSubmenuResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UIDeleteSubmenuResponse::~UIDeleteSubmenuResponse() { +} + +void UIDeleteSubmenuResponse::Run() { + LOG4CXX_INFO(logger_, "UIDeleteSubmenuResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_DeleteSubMenu); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_request.cc new file mode 100644 index 000000000..4c93f9235 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_end_audio_pass_thru_request.h" + +namespace application_manager { + +namespace commands { + +UIEndAudioPassThruRequest::UIEndAudioPassThruRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UIEndAudioPassThruRequest::~UIEndAudioPassThruRequest() { +} + +void UIEndAudioPassThruRequest::Run() { + LOG4CXX_INFO(logger_, "UIEndAudioPassThruRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_response.cc new file mode 100644 index 000000000..e560ae293 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_end_audio_pass_thru_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UIEndAudioPassThruResponse::UIEndAudioPassThruResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UIEndAudioPassThruResponse::~UIEndAudioPassThruResponse() { +} + +void UIEndAudioPassThruResponse::Run() { + LOG4CXX_INFO(logger_, "UIEndAudioPassThruResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_EndAudioPassThru); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_capabilities_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_capabilities_request.cc new file mode 100644 index 000000000..b9f1b6917 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_capabilities_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_get_capabilities_request.h" + +namespace application_manager { + +namespace commands { + +UIGetCapabilitiesRequest::UIGetCapabilitiesRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UIGetCapabilitiesRequest::~UIGetCapabilitiesRequest() { +} + +void UIGetCapabilitiesRequest::Run() { + LOG4CXX_INFO(logger_, "UIGetCapabilitiesRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc new file mode 100644 index 000000000..0663bf033 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc @@ -0,0 +1,75 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_get_capabilities_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +UIGetCapabilitiesResponse::UIGetCapabilitiesResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UIGetCapabilitiesResponse::~UIGetCapabilitiesResponse() { +} + +void UIGetCapabilitiesResponse::Run() { + LOG4CXX_INFO(logger_, "UIGetCapabilitiesResponse::Run"); + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + + hmi_capabilities.set_display_capabilities( + (*message_)[strings::msg_params][hmi_response::display_capabilities]); + + hmi_capabilities.set_hmi_zone_capabilities( + (*message_)[strings::msg_params][hmi_response::hmi_zone_capabilities]); + + if ((*message_)[strings::msg_params].keyExists( + hmi_response::soft_button_capabilities)) { + hmi_capabilities.set_soft_button_capabilities( + (*message_)[strings::msg_params][hmi_response::soft_button_capabilities]); + } + + if ((*message_)[strings::msg_params].keyExists( + strings::audio_pass_thru_capabilities)) { + + hmi_capabilities.set_audio_pass_thru_capabilities( + (*message_)[strings::msg_params][strings::audio_pass_thru_capabilities]); + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_language_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_language_request.cc new file mode 100644 index 000000000..ffca242d4 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_language_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_get_language_request.h" + +namespace application_manager { + +namespace commands { + +UIGetLanguageRequest::UIGetLanguageRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UIGetLanguageRequest::~UIGetLanguageRequest() { +} + +void UIGetLanguageRequest::Run() { + LOG4CXX_INFO(logger_, "UIGetLanguageRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_language_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_language_response.cc new file mode 100644 index 000000000..20435d788 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_language_response.cc @@ -0,0 +1,60 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_get_language_response.h" +#include "application_manager/application_manager_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UIGetLanguageResponse::UIGetLanguageResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UIGetLanguageResponse::~UIGetLanguageResponse() { +} + +void UIGetLanguageResponse::Run() { + LOG4CXX_INFO(logger_, "UIGetLanguageResponse::Run"); + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + + hmi_capabilities.set_active_ui_language( + static_cast<hmi_apis::Common_Language::eType>( + (*message_)[strings::msg_params][hmi_response::language].asInt())); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_request.cc new file mode 100644 index 000000000..455486ef6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_get_supported_languages_request.h" + +namespace application_manager { + +namespace commands { + +UIGetSupportedLanguagesRequest::UIGetSupportedLanguagesRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UIGetSupportedLanguagesRequest::~UIGetSupportedLanguagesRequest() { +} + +void UIGetSupportedLanguagesRequest::Run() { + LOG4CXX_INFO(logger_, "UIGetSupportedLanguagesRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_response.cc new file mode 100644 index 000000000..8492cfca5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_response.cc @@ -0,0 +1,66 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_get_supported_languages_response.h" +#include "application_manager/application_manager_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UIGetSupportedLanguagesResponse::UIGetSupportedLanguagesResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UIGetSupportedLanguagesResponse::~UIGetSupportedLanguagesResponse() { +} + +void UIGetSupportedLanguagesResponse::Run() { + LOG4CXX_INFO(logger_, "UIGetSupportedLanguagesResponse::Run"); + + const hmi_apis::Common_Result::eType code = + static_cast<hmi_apis::Common_Result::eType>( + (*message_)[strings::params][hmi_response::code].asInt()); + + if (hmi_apis::Common_Result::SUCCESS == code) { + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + + hmi_capabilities.set_ui_supported_languages( + (*message_)[strings::msg_params][hmi_response::languages]); + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_is_ready_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_is_ready_request.cc new file mode 100644 index 000000000..50d0ddd95 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_is_ready_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_is_ready_request.h" + +namespace application_manager { + +namespace commands { + +UIIsReadyRequest::UIIsReadyRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UIIsReadyRequest::~UIIsReadyRequest() { +} + +void UIIsReadyRequest::Run() { + LOG4CXX_INFO(logger_, "UIIsReadyRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_is_ready_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_is_ready_response.cc new file mode 100644 index 000000000..97d11b602 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_is_ready_response.cc @@ -0,0 +1,63 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_is_ready_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +UIIsReadyResponse::UIIsReadyResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UIIsReadyResponse::~UIIsReadyResponse() { +} + +void UIIsReadyResponse::Run() { + LOG4CXX_INFO(logger_, "UIIsReadyResponse::Run"); + smart_objects::SmartObject& object = *message_; + + bool is_available = false; + if (object[strings::msg_params].keyExists(strings::available)) { + is_available = object[strings::msg_params][strings::available].asBool(); + } + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + + hmi_capabilities.set_is_ui_cooperating(is_available); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_request.cc new file mode 100644 index 000000000..cf77703a9 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h" + +namespace application_manager { + +namespace commands { + +UIPerformAudioPassThruRequest::UIPerformAudioPassThruRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UIPerformAudioPassThruRequest::~UIPerformAudioPassThruRequest() { +} + +void UIPerformAudioPassThruRequest::Run() { + LOG4CXX_INFO(logger_, "UIPerformAudioPassThruRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_response.cc new file mode 100644 index 000000000..36d4c507b --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +UIPerformAudioPassThruResponse::UIPerformAudioPassThruResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UIPerformAudioPassThruResponse::~UIPerformAudioPassThruResponse() { +} + +void UIPerformAudioPassThruResponse::Run() { + LOG4CXX_INFO(logger_, "UIPerformAudioPassThruResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_PerformAudioPassThru); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_interaction_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_interaction_request.cc new file mode 100644 index 000000000..09f98ec03 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_interaction_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_perform_interaction_request.h" + +namespace application_manager { + +namespace commands { + +UIPerformInteractionRequest::UIPerformInteractionRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UIPerformInteractionRequest::~UIPerformInteractionRequest() { +} + +void UIPerformInteractionRequest::Run() { + LOG4CXX_INFO(logger_, "UIPerformInteractionRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_interaction_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_interaction_response.cc new file mode 100644 index 000000000..2f5f6ead5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_interaction_response.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_perform_interaction_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UIPerformInteractionResponse::UIPerformInteractionResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UIPerformInteractionResponse::~UIPerformInteractionResponse() { +} + +void UIPerformInteractionResponse::Run() { + LOG4CXX_INFO(logger_, "UIPerformInteractionResponse::Run"); + event_engine::Event event(hmi_apis::FunctionID::UI_PerformInteraction); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_scrollable_message_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_scrollable_message_request.cc new file mode 100644 index 000000000..ac34dd236 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_scrollable_message_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_scrollable_message_request.h" + +namespace application_manager { + +namespace commands { + +UIScrollableMessageRequest::UIScrollableMessageRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UIScrollableMessageRequest::~UIScrollableMessageRequest() { +} + +void UIScrollableMessageRequest::Run() { + LOG4CXX_INFO(logger_, "UIScrollableMessageRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_scrollable_message_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_scrollable_message_response.cc new file mode 100644 index 000000000..182d512c8 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_scrollable_message_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_scrollable_message_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UIScrollableMessageResponse::UIScrollableMessageResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UIScrollableMessageResponse::~UIScrollableMessageResponse() { +} + +void UIScrollableMessageResponse::Run() { + LOG4CXX_INFO(logger_, "UIScrollableMessageResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_ScrollableMessage); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_display_layout_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_display_layout_request.cc new file mode 100644 index 000000000..3dea85348 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_display_layout_request.cc @@ -0,0 +1,54 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_set_display_layout_request.h" + +namespace application_manager { + +namespace commands { + +UiSetDisplayLayoutRequest::UiSetDisplayLayoutRequest( + const MessageSharedPtr& message): RequestToHMI(message) { +} + +UiSetDisplayLayoutRequest::~UiSetDisplayLayoutRequest() { +} + +void UiSetDisplayLayoutRequest::Run() { + LOG4CXX_INFO(logger_, "UiSetDisplayLayoutRequest::Run"); + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_display_layout_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_display_layout_response.cc new file mode 100644 index 000000000..f381a4db2 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_display_layout_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_set_display_layout_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UiSetDisplayLayoutResponse::UiSetDisplayLayoutResponse( + const MessageSharedPtr& message): ResponseFromHMI(message) { +} + +UiSetDisplayLayoutResponse::~UiSetDisplayLayoutResponse() { +} + +void UiSetDisplayLayoutResponse::Run() { + LOG4CXX_INFO(logger_, "UiSetDisplayLayoutResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_SetDisplayLayout); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_global_properties_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_global_properties_request.cc new file mode 100644 index 000000000..e538866c1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_global_properties_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_set_global_properties_request.h" + +namespace application_manager { + +namespace commands { + +UISetGlobalPropertiesRequest::UISetGlobalPropertiesRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UISetGlobalPropertiesRequest::~UISetGlobalPropertiesRequest() { +} + +void UISetGlobalPropertiesRequest::Run() { + LOG4CXX_INFO(logger_, "UISetGlobalPropertiesRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_global_properties_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_global_properties_response.cc new file mode 100644 index 000000000..67023533c --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_global_properties_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_set_global_properties_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UISetGlobalPropertiesResponse::UISetGlobalPropertiesResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UISetGlobalPropertiesResponse::~UISetGlobalPropertiesResponse() { +} + +void UISetGlobalPropertiesResponse::Run() { + LOG4CXX_INFO(logger_, "UISetGlobalPropertiesResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_SetGlobalProperties); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_icon_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_icon_request.cc new file mode 100644 index 000000000..b587a3028 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_icon_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_set_icon_request.h" + +namespace application_manager { + +namespace commands { + +UISetIconRequest::UISetIconRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UISetIconRequest::~UISetIconRequest() { +} + +void UISetIconRequest::Run() { + LOG4CXX_INFO(logger_, "UISetIconRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_icon_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_icon_response.cc new file mode 100644 index 000000000..f4565baaf --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_icon_response.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_set_icon_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UISetIconResponse::UISetIconResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UISetIconResponse::~UISetIconResponse() { +} + +void UISetIconResponse::Run() { + LOG4CXX_INFO(logger_, "UISetIconResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_SetAppIcon); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_request.cc new file mode 100644 index 000000000..1eb218013 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_set_media_clock_timer_request.h" + +namespace application_manager { + +namespace commands { + +UISetMediaClockTimerRequest::UISetMediaClockTimerRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UISetMediaClockTimerRequest::~UISetMediaClockTimerRequest() { +} + +void UISetMediaClockTimerRequest::Run() { + LOG4CXX_INFO(logger_, "UISetMediaClockTimerRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_response.cc new file mode 100644 index 000000000..ee67862a1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_set_media_clock_timer_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UISetMediaClockTimerResponse::UISetMediaClockTimerResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UISetMediaClockTimerResponse::~UISetMediaClockTimerResponse() { +} + +void UISetMediaClockTimerResponse::Run() { + LOG4CXX_INFO(logger_, "UISetMediaClockTimerResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_SetMediaClockTimer); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_show_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_show_request.cc new file mode 100644 index 000000000..841c8a62f --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_show_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_show_request.h" + +namespace application_manager { + +namespace commands { + +UIShowRequest::UIShowRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UIShowRequest::~UIShowRequest() { +} + +void UIShowRequest::Run() { + LOG4CXX_INFO(logger_, "UIShowRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_show_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_show_response.cc new file mode 100644 index 000000000..c95cbbd2b --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_show_response.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_show_response.h" +#include "application_manager/event_engine/event.h" + +namespace application_manager { + +namespace commands { + +UIShowResponse::UIShowResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UIShowResponse::~UIShowResponse() { +} + +void UIShowResponse::Run() { + LOG4CXX_INFO(logger_, "UIShowResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_Show); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_slider_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_slider_request.cc new file mode 100644 index 000000000..fc7203c0e --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_slider_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/ui_slider_request.h" + +namespace application_manager { + +namespace commands { + +UISliderRequest::UISliderRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UISliderRequest::~UISliderRequest() { +} + +void UISliderRequest::Run() { + LOG4CXX_INFO(logger_, "UISliderRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_slider_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_slider_response.cc new file mode 100644 index 000000000..8d2522e22 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_slider_response.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/ui_slider_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UISliderResponse::UISliderResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UISliderResponse::~UISliderResponse() { +} + +void UISliderResponse::Run() { + LOG4CXX_INFO(logger_, "UISliderResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::UI_Slider); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/update_app_list_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/update_app_list_request.cc new file mode 100644 index 000000000..eaa09b40c --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/update_app_list_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/update_app_list_request.h" + +namespace application_manager { + +namespace commands { + +UpdateAppListRequest::UpdateAppListRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UpdateAppListRequest::~UpdateAppListRequest() { +} + +void UpdateAppListRequest::Run() { + LOG4CXX_INFO(logger_, "UpdateAppListRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/update_app_list_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/update_app_list_response.cc new file mode 100644 index 000000000..7c8537bc8 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/update_app_list_response.cc @@ -0,0 +1,54 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/update_app_list_response.h" + +namespace application_manager { + +namespace commands { + +UpdateAppListResponse::UpdateAppListResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UpdateAppListResponse::~UpdateAppListResponse() { +} + +void UpdateAppListResponse::Run() { + LOG4CXX_INFO(logger_, "UpdateAppListResponse::Run"); + + // TODO(PV): add check +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/update_device_list_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/update_device_list_request.cc new file mode 100644 index 000000000..6346f312f --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/update_device_list_request.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/update_device_list_request.h" +#include "application_manager/application_manager_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UpdateDeviceListRequest::UpdateDeviceListRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +UpdateDeviceListRequest::~UpdateDeviceListRequest() { +} + +void UpdateDeviceListRequest::Run() { + LOG4CXX_INFO(logger_, "UpdateDeviceListRequest::Run"); + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/update_device_list_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/update_device_list_response.cc new file mode 100644 index 000000000..85ef57404 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/update_device_list_response.cc @@ -0,0 +1,54 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/update_device_list_response.h" + +namespace application_manager { + +namespace commands { + +UpdateDeviceListResponse::UpdateDeviceListResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +UpdateDeviceListResponse::~UpdateDeviceListResponse() { +} + +void UpdateDeviceListResponse::Run() { + LOG4CXX_INFO(logger_, "UpdateDeviceListResponse::Run"); + + // TODO(PV): add check for correctness. +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_request.cc new file mode 100644 index 000000000..45d44e447 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/vi_diagnostic_message_request.h" + +namespace application_manager { + +namespace commands { + +VIDiagnosticMessageRequest::VIDiagnosticMessageRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +VIDiagnosticMessageRequest::~VIDiagnosticMessageRequest() { +} + +void VIDiagnosticMessageRequest::Run() { + LOG4CXX_INFO(logger_, "VIDiagnosticMessageRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_response.cc new file mode 100644 index 000000000..d83869b27 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_response.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/vi_diagnostic_message_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +VIDiagnosticMessageResponse::VIDiagnosticMessageResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +VIDiagnosticMessageResponse::~VIDiagnosticMessageResponse() { +} + +void VIDiagnosticMessageResponse::Run() { + LOG4CXX_INFO(logger_, "VIDiagnosticMessageResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::VehicleInfo_DiagnosticMessage); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_dtcs_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_dtcs_request.cc new file mode 100644 index 000000000..5289816fb --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_dtcs_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/vi_get_dtcs_request.h" + +namespace application_manager { + +namespace commands { + +VIGetDTCsRequest::VIGetDTCsRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +VIGetDTCsRequest::~VIGetDTCsRequest() { +} + +void VIGetDTCsRequest::Run() { + LOG4CXX_INFO(logger_, "VIGetDTCsRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_dtcs_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_dtcs_response.cc new file mode 100644 index 000000000..0cacc51d6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_dtcs_response.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/vi_get_dtcs_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +VIGetDTCsResponse::VIGetDTCsResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +VIGetDTCsResponse::~VIGetDTCsResponse() { +} + +void VIGetDTCsResponse::Run() { + LOG4CXX_INFO(logger_, "VIGetDTCsResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::VehicleInfo_GetDTCs); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_request.cc new file mode 100644 index 000000000..40b2ca9fe --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/vi_get_vehicle_data_request.h" + +namespace application_manager { + +namespace commands { + +VIGetVehicleDataRequest::VIGetVehicleDataRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +VIGetVehicleDataRequest::~VIGetVehicleDataRequest() { +} + +void VIGetVehicleDataRequest::Run() { + LOG4CXX_INFO(logger_, "VIGetVehicleDataRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_response.cc new file mode 100644 index 000000000..122ddcced --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_response.cc @@ -0,0 +1,91 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/vi_get_vehicle_data_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +VIGetVehicleDataResponse::VIGetVehicleDataResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +VIGetVehicleDataResponse::~VIGetVehicleDataResponse() { +} + +void VIGetVehicleDataResponse::Run() { + LOG4CXX_INFO(logger_, "VIGetVehicleDataResponse::Run"); + smart_objects::SmartObject* result_so = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + if (!result_so) { + // TODO(PV): add response with out of memory. + LOG4CXX_ERROR(logger_, + "Failed to create new Smart Object on get vehicle response."); + return; + } + + event_engine::Event event(hmi_apis::FunctionID::VehicleInfo_GetVehicleData); + + smart_objects::SmartObject& result = *result_so; + + if ((*message_)[strings::params][strings::message_type] + == static_cast<int32_t>(hmi_apis::messageType::error_response)) { + if ((*message_)[strings::params].keyExists(strings::data)) { + result[strings::msg_params] = (*message_)[strings::params][strings::data]; + result[strings::params][hmi_response::code] = + (*message_)[strings::params][hmi_response::code]; + result[strings::params][strings::correlation_id] = + (*message_)[strings::params][strings::correlation_id]; + result[strings::params][strings::error_msg] = + (*message_)[strings::params][strings::error_msg]; + result[strings::params][strings::message_type] = + (*message_)[strings::params][strings::message_type]; + result[strings::params][strings::protocol_type] = + (*message_)[strings::params][strings::protocol_type]; + result[strings::params][strings::protocol_version] = + (*message_)[strings::params][strings::protocol_version]; + } + + event.set_smart_object(*result_so); + } else { + event.set_smart_object(*message_); + } + + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_request.cc new file mode 100644 index 000000000..4c46de950 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/vi_get_vehicle_type_request.h" + +namespace application_manager { + +namespace commands { + +VIGetVehicleTypeRequest::VIGetVehicleTypeRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +VIGetVehicleTypeRequest::~VIGetVehicleTypeRequest() { +} + +void VIGetVehicleTypeRequest::Run() { + LOG4CXX_INFO(logger_, "VIGetVehicleTypeRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_response.cc new file mode 100644 index 000000000..18c0136d1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_response.cc @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/vi_get_vehicle_type_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +VIGetVehicleTypeResponse::VIGetVehicleTypeResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +VIGetVehicleTypeResponse::~VIGetVehicleTypeResponse() { +} + +void VIGetVehicleTypeResponse::Run() { + LOG4CXX_INFO(logger_, "VIGetVehicleTypeResponse::Run"); + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + + hmi_capabilities.set_vehicle_type( + (*message_)[strings::msg_params][hmi_response::vehicle_type]); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_is_ready_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_is_ready_request.cc new file mode 100644 index 000000000..074d6f602 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_is_ready_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/vi_is_ready_request.h" + +namespace application_manager { + +namespace commands { + +VIIsReadyRequest::VIIsReadyRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +VIIsReadyRequest::~VIIsReadyRequest() { +} + +void VIIsReadyRequest::Run() { + LOG4CXX_INFO(logger_, "VIIsReadyRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_is_ready_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_is_ready_response.cc new file mode 100644 index 000000000..f06e01879 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_is_ready_response.cc @@ -0,0 +1,62 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/vi_is_ready_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +VIIsReadyResponse::VIIsReadyResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +VIIsReadyResponse::~VIIsReadyResponse() { +} + +void VIIsReadyResponse::Run() { + LOG4CXX_INFO(logger_, "VIIsReadyResponse::Run"); + smart_objects::SmartObject& object = *message_; + + bool is_available = false; + if (object[strings::msg_params].keyExists(strings::available)) { + is_available = object[strings::msg_params][strings::available].asBool(); + } + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + hmi_capabilities.set_is_ivi_cooperating(is_available); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_read_did_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_read_did_request.cc new file mode 100644 index 000000000..1485b471c --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_read_did_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/vi_read_did_request.h" + +namespace application_manager { + +namespace commands { + +VIReadDIDRequest::VIReadDIDRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +VIReadDIDRequest::~VIReadDIDRequest() { +} + +void VIReadDIDRequest::Run() { + LOG4CXX_INFO(logger_, "VIReadDIDRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_read_did_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_read_did_response.cc new file mode 100644 index 000000000..ddd9f3c54 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_read_did_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/vi_read_did_response.h" +#include "application_manager/event_engine/event.h" +#include "application_manager/application_manager_impl.h" + + +namespace application_manager { + +namespace commands { + +VIReadDIDResponse::VIReadDIDResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +VIReadDIDResponse::~VIReadDIDResponse() { +} + +void VIReadDIDResponse::Run() { + LOG4CXX_INFO(logger_, "VIReadDIDResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::VehicleInfo_ReadDID); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_request.cc new file mode 100644 index 000000000..38950a2a2 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h" + +namespace application_manager { + +namespace commands { + +VISubscribeVehicleDataRequest::VISubscribeVehicleDataRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +VISubscribeVehicleDataRequest::~VISubscribeVehicleDataRequest() { +} + +void VISubscribeVehicleDataRequest::Run() { + LOG4CXX_INFO(logger_, "VISubscribeVehicleDataRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_response.cc new file mode 100644 index 000000000..bd67294fb --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_response.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { +namespace commands { + +VISubscribeVehicleDataResponse::VISubscribeVehicleDataResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +VISubscribeVehicleDataResponse::~VISubscribeVehicleDataResponse() { +} + +void VISubscribeVehicleDataResponse::Run() { + LOG4CXX_INFO(logger_, "VISubscribeVehicleDataResponse::Run"); + event_engine::Event event( + hmi_apis::FunctionID::VehicleInfo_SubscribeVehicleData + ); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_request.cc new file mode 100644 index 000000000..0af87c2a2 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h" + +namespace application_manager { + +namespace commands { + +VIUnsubscribeVehicleDataRequest::VIUnsubscribeVehicleDataRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +VIUnsubscribeVehicleDataRequest::~VIUnsubscribeVehicleDataRequest() { +} + +void VIUnsubscribeVehicleDataRequest::Run() { + LOG4CXX_INFO(logger_, "VIUnsubscribeVehicleDataRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_response.cc new file mode 100644 index 000000000..22231b4a6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_response.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { +namespace commands { + +VIUnsubscribeVehicleDataResponse::VIUnsubscribeVehicleDataResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +VIUnsubscribeVehicleDataResponse::~VIUnsubscribeVehicleDataResponse() { +} + +void VIUnsubscribeVehicleDataResponse::Run() { + LOG4CXX_INFO(logger_, "VIUnsubscribeVehicleDataResponse::Run"); + event_engine::Event event( + hmi_apis::FunctionID::VehicleInfo_UnsubscribeVehicleData + ); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_add_command_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_add_command_request.cc new file mode 100644 index 000000000..a74ece95d --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_add_command_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/vr_add_command_request.h" + +namespace application_manager { + +namespace commands { + +VRAddCommandRequest::VRAddCommandRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +VRAddCommandRequest::~VRAddCommandRequest() { +} + +void VRAddCommandRequest::Run() { + LOG4CXX_INFO(logger_, "VRAddCommandRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_add_command_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_add_command_response.cc new file mode 100644 index 000000000..513ccdace --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_add_command_response.cc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/vr_add_command_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +VRAddCommandResponse::VRAddCommandResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +VRAddCommandResponse::~VRAddCommandResponse() { +} + +void VRAddCommandResponse::Run() { + LOG4CXX_INFO(logger_, "VRAddCommandResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::VR_AddCommand); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_change_registration_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_change_registration_request.cc new file mode 100644 index 000000000..bd7c1e784 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_change_registration_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/vr_change_registration_request.h" + +namespace application_manager { + +namespace commands { + +VRChangeRegistrationRequest::VRChangeRegistrationRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +VRChangeRegistrationRequest::~VRChangeRegistrationRequest() { +} + +void VRChangeRegistrationRequest::Run() { + LOG4CXX_INFO(logger_, "VRChangeRegistrationRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_change_registration_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_change_registration_response.cc new file mode 100644 index 000000000..92a36d23f --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_change_registration_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/vr_change_registration_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +VRChangeRegistrationResponse::VRChangeRegistrationResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +VRChangeRegistrationResponse::~VRChangeRegistrationResponse() { +} + +void VRChangeRegistrationResponse::Run() { + LOG4CXX_INFO(logger_, "VRChangeRegistratioResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::VR_ChangeRegistration); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_delete_command_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_delete_command_request.cc new file mode 100644 index 000000000..0241be630 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_delete_command_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/vr_delete_command_request.h" + +namespace application_manager { + +namespace commands { + +VRDeleteCommandRequest::VRDeleteCommandRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +VRDeleteCommandRequest::~VRDeleteCommandRequest() { +} + +void VRDeleteCommandRequest::Run() { + LOG4CXX_INFO(logger_, "VRDeleteCommandRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_delete_command_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_delete_command_response.cc new file mode 100644 index 000000000..c5a13126b --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_delete_command_response.cc @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/vr_delete_command_response.h" +#include "application_manager/event_engine/event.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +VRDeleteCommandResponse::VRDeleteCommandResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +VRDeleteCommandResponse::~VRDeleteCommandResponse() { +} + +void VRDeleteCommandResponse::Run() { + LOG4CXX_INFO(logger_, "VRDeleteCommandResponse::Run"); + + event_engine::Event event(hmi_apis::FunctionID::VR_DeleteCommand); + event.set_smart_object(*message_); + event.raise(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_capabilities_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_capabilities_request.cc new file mode 100644 index 000000000..8b1d4ae0b --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_capabilities_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/vr_get_capabilities_request.h" + +namespace application_manager { + +namespace commands { + +VRGetCapabilitiesRequest::VRGetCapabilitiesRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +VRGetCapabilitiesRequest::~VRGetCapabilitiesRequest() { +} + +void VRGetCapabilitiesRequest::Run() { + LOG4CXX_INFO(logger_, "VRGetCapabilitiesRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_capabilities_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_capabilities_response.cc new file mode 100644 index 000000000..de6fdd7a9 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_capabilities_response.cc @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/vr_get_capabilities_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +VRGetCapabilitiesResponse::VRGetCapabilitiesResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +VRGetCapabilitiesResponse::~VRGetCapabilitiesResponse() { +} + +void VRGetCapabilitiesResponse::Run() { + LOG4CXX_INFO(logger_, "VRGetCapabilitiesResponse::Run"); + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + + hmi_capabilities.set_vr_capabilities( + (*message_)[strings::msg_params][strings::vr_capabilities]); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_language_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_language_request.cc new file mode 100644 index 000000000..9f4aeb979 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_language_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/vr_get_language_request.h" + +namespace application_manager { + +namespace commands { + +VRGetLanguageRequest::VRGetLanguageRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +VRGetLanguageRequest::~VRGetLanguageRequest() { +} + +void VRGetLanguageRequest::Run() { + LOG4CXX_INFO(logger_, "VRGetLanguageRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_language_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_language_response.cc new file mode 100644 index 000000000..acbd24fbb --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_language_response.cc @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/vr_get_language_response.h" +#include "application_manager/application_manager_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +VRGetLanguageResponse::VRGetLanguageResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +VRGetLanguageResponse::~VRGetLanguageResponse() { +} + +void VRGetLanguageResponse::Run() { + LOG4CXX_INFO(logger_, "VRGetLanguageResponse::Run"); + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + hmi_capabilities.set_active_vr_language( + static_cast<hmi_apis::Common_Language::eType>( + (*message_)[strings::msg_params][hmi_response::language].asInt())); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_request.cc new file mode 100644 index 000000000..e43d88430 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_request.cc @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/vr_get_supported_languages_request.h" + +namespace application_manager { + +namespace commands { + +VRGetSupportedLanguagesRequest::VRGetSupportedLanguagesRequest( + const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +VRGetSupportedLanguagesRequest::~VRGetSupportedLanguagesRequest() { +} + +void VRGetSupportedLanguagesRequest::Run() { + LOG4CXX_INFO(logger_, "VRGetSupportedLanguagesRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_response.cc new file mode 100644 index 000000000..d2cc148a0 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_response.cc @@ -0,0 +1,66 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/vr_get_supported_languages_response.h" +#include "application_manager/application_manager_impl.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +VRGetSupportedLanguagesResponse::VRGetSupportedLanguagesResponse( + const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +VRGetSupportedLanguagesResponse::~VRGetSupportedLanguagesResponse() { +} + +void VRGetSupportedLanguagesResponse::Run() { + LOG4CXX_INFO(logger_, "VRGetSupportedLanguagesResponse::Run"); + + const hmi_apis::Common_Result::eType code = + static_cast<hmi_apis::Common_Result::eType>( + (*message_)[strings::params][hmi_response::code].asInt()); + + if (hmi_apis::Common_Result::SUCCESS == code) { + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + hmi_capabilities.set_vr_supported_languages( + (*message_)[strings::msg_params][hmi_response::languages]); + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_is_ready_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_is_ready_request.cc new file mode 100644 index 000000000..944cfcbb3 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_is_ready_request.cc @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/hmi/vr_is_ready_request.h" + +namespace application_manager { + +namespace commands { + +VRIsReadyRequest::VRIsReadyRequest(const MessageSharedPtr& message) + : RequestToHMI(message) { +} + +VRIsReadyRequest::~VRIsReadyRequest() { +} + +void VRIsReadyRequest::Run() { + LOG4CXX_INFO(logger_, "VRIsReadyRequest::Run"); + + SendRequest(); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_is_ready_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_is_ready_response.cc new file mode 100644 index 000000000..8cf5e66ee --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_is_ready_response.cc @@ -0,0 +1,62 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "application_manager/commands/hmi/vr_is_ready_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +VRIsReadyResponse::VRIsReadyResponse(const MessageSharedPtr& message) + : ResponseFromHMI(message) { +} + +VRIsReadyResponse::~VRIsReadyResponse() { +} + +void VRIsReadyResponse::Run() { + LOG4CXX_INFO(logger_, "VRIsReadyResponse::Run"); + smart_objects::SmartObject& object = *message_; + + bool is_available = false; + if (object[strings::msg_params].keyExists(strings::available)) { + is_available = object[strings::msg_params][strings::available].asBool(); + } + + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + hmi_capabilities.set_is_vr_cooperating(is_available); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/add_command_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/add_command_request.cc new file mode 100644 index 000000000..78bc47c06 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/add_command_request.cc @@ -0,0 +1,364 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include <string> +#include "application_manager/commands/mobile/add_command_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application.h" +#include "application_manager/message_helper.h" +#include "utils/file_system.h" + +namespace application_manager { + +namespace commands { + +AddCommandRequest::AddCommandRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message), + is_ui_send_(false), + is_vr_send_(false), + is_ui_received_(false), + is_vr_received_(false), + ui_result_(hmi_apis::Common_Result::INVALID_ENUM), + vr_result_(hmi_apis::Common_Result::INVALID_ENUM) { +} + +AddCommandRequest::~AddCommandRequest() { +} + +void AddCommandRequest::Run() { + LOG4CXX_INFO(logger_, "AddCommandRequest::Run"); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "No application associated with session key"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + mobile_apis::Result::eType verification_result = + MessageHelper::VerifyImageFiles((*message_)[strings::msg_params], app); + + if (mobile_apis::Result::SUCCESS != verification_result) { + LOG4CXX_ERROR_EXT( + logger_, + "MessageHelper::VerifyImageFiles return " << verification_result); + SendResponse(false, verification_result); + return; + } + + if (!((*message_)[strings::msg_params].keyExists(strings::cmd_id))) { + LOG4CXX_ERROR_EXT(logger_, "INVALID_DATA"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + + if (app->FindCommand( + (*message_)[strings::msg_params][strings::cmd_id].asUInt())) { + LOG4CXX_ERROR_EXT(logger_, "INVALID_ID"); + SendResponse(false, mobile_apis::Result::INVALID_ID); + return; + } + + bool data_exist = false; + + if ((*message_)[strings::msg_params].keyExists(strings::menu_params)) { + if (!CheckCommandName(app)) { + SendResponse(false, mobile_apis::Result::DUPLICATE_NAME); + return; + } + if ((*message_)[strings::msg_params][strings::menu_params].keyExists( + hmi_request::parent_id)) { + if (!CheckCommandParentId(app)) { + SendResponse(false, mobile_apis::Result::INVALID_ID, + "Parent ID doesn't exist"); + return; + } + } + data_exist = true; + } + + if (((*message_)[strings::msg_params].keyExists(strings::vr_commands)) + && ((*message_)[strings::msg_params] + [strings::vr_commands].length() > 0)) { + + if (!CheckCommandVRSynonym(app)) { + SendResponse(false, mobile_apis::Result::DUPLICATE_NAME); + return; + } + + if (!CheckVRCommandsNames()) { + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + data_exist = true; + } + + if (!data_exist) { + LOG4CXX_ERROR_EXT(logger_, "INVALID_DATA"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + + if ((*message_)[strings::msg_params].keyExists(strings::menu_params)) { + if (!CheckMenuName()) { + LOG4CXX_ERROR_EXT(logger_, "MenuName is invalid"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::cmd_id] = + (*message_)[strings::msg_params][strings::cmd_id]; + msg_params[strings::menu_params] = + (*message_)[strings::msg_params][strings::menu_params]; + + msg_params[strings::app_id] = app->app_id(); + + if ( ((*message_)[strings::msg_params].keyExists(strings::cmd_icon)) + && ((*message_)[strings::msg_params][strings::cmd_icon].keyExists(strings::value)) + && (0 < (*message_)[strings::msg_params][strings::cmd_icon] + [strings::value].length())) { + msg_params[strings::cmd_icon] = + (*message_)[strings::msg_params][strings::cmd_icon]; + } + + is_ui_send_ = true; + + SendHMIRequest(hmi_apis::FunctionID::UI_AddCommand, &msg_params, true); + } + + if ((*message_)[strings::msg_params].keyExists(strings::vr_commands)) { + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::cmd_id] = + (*message_)[strings::msg_params][strings::cmd_id]; + msg_params[strings::vr_commands] = + (*message_)[strings::msg_params][strings::vr_commands]; + msg_params[strings::app_id] = app->app_id(); + + is_vr_send_ = true; + + SendHMIRequest(hmi_apis::FunctionID::VR_AddCommand, &msg_params, true); + } +} + +bool AddCommandRequest::CheckCommandName(ApplicationConstSharedPtr app) { + if (!app) { + return false; + } + + const CommandsMap& commands = app->commands_map(); + CommandsMap::const_iterator i = commands.begin(); + + for (; commands.end() != i; ++i) { + + if(!(*i->second).keyExists(strings::menu_params)) { + continue; + } + + if ((*i->second)[strings::menu_params][strings::menu_name].asString() + == (*message_)[strings::msg_params][strings::menu_params] + [strings::menu_name].asString()) { + LOG4CXX_INFO(logger_, "AddCommandRequest::CheckCommandName received" + " command name already exist"); + return false; + } + } + return true; +} + +bool AddCommandRequest::CheckCommandVRSynonym(ApplicationConstSharedPtr app) { + if (!app) { + return false; + } + + const CommandsMap& commands = app->commands_map(); + CommandsMap::const_iterator it = commands.begin(); + + for (; commands.end() != it; ++it) { + + if(!(*it->second).keyExists(strings::vr_commands)) { + continue; + } + + for (size_t i = 0; i < (*it->second)[strings::vr_commands].length(); ++i) { + for (size_t j = 0; + j < (*message_)[strings::msg_params][strings::vr_commands].length(); + ++j) { + std::string vr_cmd_i = + (*it->second)[strings::vr_commands][i].asString(); + std::string vr_cmd_j = + (*message_)[strings::msg_params] + [strings::vr_commands][j].asString(); + + if (0 == strcasecmp(vr_cmd_i.c_str(), vr_cmd_j.c_str())) { + LOG4CXX_INFO(logger_, "AddCommandRequest::CheckCommandVRSynonym" + " received command vr synonym already exist"); + return false; + } + } + } + } + return true; +} + +bool AddCommandRequest::CheckVRCommandsNames() { + for (size_t i = 0; + i < (*message_)[strings::msg_params][strings::vr_commands].length(); + ++i) { + const std::string& str = + (*message_)[strings::msg_params][strings::vr_commands][i].asString(); + + if (!CheckSyntax(str)) { + LOG4CXX_INFO(logger_, "Invalid command name."); + return false; + } + } + return true; +} + +bool AddCommandRequest::CheckMenuName() { + const std::string& str = (*message_)[strings::msg_params][strings::menu_params] + [strings::menu_name].asString(); + if (!CheckSyntax(str)) { + LOG4CXX_INFO(logger_, "Invalid menu name."); + return false; + } + return true; +} + +bool AddCommandRequest::CheckCommandParentId(ApplicationConstSharedPtr app) { + if (!app) { + return false; + } + + const int32_t parent_id = + (*message_)[strings::msg_params][strings::menu_params] + [hmi_request::parent_id].asInt(); + smart_objects::SmartObject* parent = app->FindSubMenu(parent_id); + + if (!parent) { + LOG4CXX_INFO(logger_, "AddCommandRequest::CheckCommandParentId received" + " submenu doesn't exist"); + return false; + } + return true; +} + +void AddCommandRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "AddCommandRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::UI_AddCommand: { + LOG4CXX_INFO(logger_, "Received UI_AddCommand event"); + is_ui_received_ = true; + ui_result_ = static_cast<hmi_apis::Common_Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + if (hmi_apis::Common_Result::SUCCESS != ui_result_) { + (*message_)[strings::msg_params].erase(strings::menu_params); + } + break; + } + case hmi_apis::FunctionID::VR_AddCommand: { + LOG4CXX_INFO(logger_, "Received VR_AddCommand event"); + is_vr_received_ = true; + vr_result_ = static_cast<hmi_apis::Common_Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + if (hmi_apis::Common_Result::SUCCESS != vr_result_) { + (*message_)[strings::msg_params].erase(strings::vr_commands); + } + break; + } + default: { + LOG4CXX_ERROR(logger_,"Received unknown event" << event.id()); + return; + } + } + + if (!IsPendingResponseExist()) { + ApplicationSharedPtr application = + ApplicationManagerImpl::instance()->application(connection_key()); + + if (!application) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + return; + } + + smart_objects::SmartObject* command = application->FindCommand( + (*message_)[strings::msg_params][strings::cmd_id].asInt()); + + if (!command) { + if ((((*message_)[strings::msg_params].keyExists(strings::menu_params)) || + ((*message_)[strings::msg_params].keyExists(strings::vr_commands))) && + (hmi_apis::Common_Result::REJECTED != ui_result_)) { + application->AddCommand((*message_)[strings::msg_params] + [strings::cmd_id].asInt(), + (*message_)[strings::msg_params]); + } + + mobile_apis::Result::eType result_code = mobile_apis::Result::INVALID_ENUM; + + bool result = ((hmi_apis::Common_Result::SUCCESS == ui_result_) && + (hmi_apis::Common_Result::SUCCESS == vr_result_)) || + ((hmi_apis::Common_Result::SUCCESS == ui_result_) && + (hmi_apis::Common_Result::INVALID_ENUM == vr_result_)) || + ((hmi_apis::Common_Result::INVALID_ENUM == ui_result_) && + (hmi_apis::Common_Result::SUCCESS == vr_result_)); + + if (!result && (hmi_apis::Common_Result::REJECTED == ui_result_)) { + result_code = static_cast<mobile_apis::Result::eType>(ui_result_); + } else { + result_code = static_cast<mobile_apis::Result::eType>( + std::max(ui_result_, vr_result_)); + } + + ApplicationSharedPtr application = + ApplicationManagerImpl::instance()->application(connection_key()); + SendResponse(result, result_code, NULL, &(message[strings::msg_params])); + application->UpdateHash(); + } + } +} + +bool AddCommandRequest::IsPendingResponseExist() { + return is_ui_send_ != is_ui_received_ || is_vr_send_ != is_vr_received_; +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/add_command_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/add_command_response.cc new file mode 100644 index 000000000..0c135af07 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/add_command_response.cc @@ -0,0 +1,56 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/add_command_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +AddCommandResponse::AddCommandResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +AddCommandResponse::~AddCommandResponse() { +} + +void AddCommandResponse::Run() { + LOG4CXX_INFO(logger_, "AddCommandResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/add_sub_menu_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/add_sub_menu_request.cc new file mode 100644 index 000000000..b3a8b90f4 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/add_sub_menu_request.cc @@ -0,0 +1,145 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/add_sub_menu_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application.h" + +namespace application_manager { + +namespace commands { + +AddSubMenuRequest::AddSubMenuRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +AddSubMenuRequest::~AddSubMenuRequest() { +} + +void AddSubMenuRequest::Run() { + LOG4CXX_INFO(logger_, "AddSubMenuRequest::Run"); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + + if (!app) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + if (app->FindSubMenu( + (*message_)[strings::msg_params][strings::menu_id].asInt())) { + LOG4CXX_ERROR(logger_, "INVALID_ID"); + SendResponse(false, mobile_apis::Result::INVALID_ID); + return; + } + + if (app->IsSubMenuNameAlreadyExist( + (*message_)[strings::msg_params][strings::menu_name].asString())) { + LOG4CXX_ERROR(logger_, "DUPLICATE_NAME"); + SendResponse(false, mobile_apis::Result::DUPLICATE_NAME); + return; + } + + if (!CheckSubMenuName()) { + LOG4CXX_ERROR(logger_, "SubMenuName is not valid"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + msg_params[strings::menu_id] = + (*message_)[strings::msg_params][strings::menu_id]; + if ((*message_)[strings::msg_params].keyExists(strings::position)) { + msg_params[strings::menu_params][strings::position] = + (*message_)[strings::msg_params][strings::position]; + } + msg_params[strings::menu_params][strings::menu_name] = + (*message_)[strings::msg_params][strings::menu_name]; + msg_params[strings::app_id] = app->app_id(); + + SendHMIRequest(hmi_apis::FunctionID::UI_AddSubMenu, &msg_params, true); +} + +void AddSubMenuRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "AddSubMenuRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::UI_AddSubMenu: { + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + bool result = mobile_apis::Result::SUCCESS == result_code; + + ApplicationSharedPtr application = + ApplicationManagerImpl::instance()->application(connection_key()); + + if (!application) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + return; + } + + if (result) { + application->AddSubMenu((*message_)[strings::msg_params] + [strings::menu_id].asInt(), + (*message_)[strings::msg_params]); + } + + SendResponse(result, result_code, NULL, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + return; + } + } +} + +bool AddSubMenuRequest::CheckSubMenuName() { + const std::string& str = + (*message_)[strings::msg_params][strings::menu_name].asString(); + if (!CheckSyntax(str)) { + LOG4CXX_INFO(logger_, "Invalid subMenu name."); + return false; + } + return true; +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/add_sub_menu_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/add_sub_menu_response.cc new file mode 100644 index 000000000..bcd7df288 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/add_sub_menu_response.cc @@ -0,0 +1,57 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/add_sub_menu_response.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +namespace commands { + +AddSubMenuResponse::AddSubMenuResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +AddSubMenuResponse::~AddSubMenuResponse() { +} + +void AddSubMenuResponse::Run() { + LOG4CXX_INFO(logger_, "AddSubMenuResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/alert_maneuver_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_maneuver_request.cc new file mode 100644 index 000000000..4707d460d --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_maneuver_request.cc @@ -0,0 +1,198 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/alert_maneuver_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" + +namespace application_manager { + +namespace commands { + +AlertManeuverRequest::AlertManeuverRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message), + result_(mobile_apis::Result::INVALID_ENUM), + tts_speak_result_code_(mobile_apis::Result::INVALID_ENUM), + navi_alert_maneuver_result_code_(mobile_apis::Result::INVALID_ENUM) { +} + +AlertManeuverRequest::~AlertManeuverRequest() { +} + +void AlertManeuverRequest::Run() { + LOG4CXX_INFO(logger_, "AlertManeuverRequest::Run"); + + if ((!(*message_)[strings::msg_params].keyExists(strings::soft_buttons)) && + (!(*message_)[strings::msg_params].keyExists(strings::tts_chunks))) { + LOG4CXX_ERROR(logger_, "AlertManeuverRequest::Request without parameters!"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + + if (NULL == app.get()) { + LOG4CXX_ERROR(logger_, "Application is not registered"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + mobile_apis::Result::eType processing_result = + MessageHelper::ProcessSoftButtons((*message_)[strings::msg_params], app); + + if (mobile_apis::Result::SUCCESS != processing_result) { + if (mobile_apis::Result::INVALID_DATA == processing_result) { + LOG4CXX_ERROR(logger_, "Wrong soft buttons parameters!"); + SendResponse(false, processing_result); + return; + } + if (mobile_apis::Result::UNSUPPORTED_RESOURCE == processing_result) { + LOG4CXX_ERROR(logger_, "UNSUPPORTED_RESOURCE!"); + result_ = processing_result; + } + } + + // Checking parameters and how many HMI requests should be sent + bool tts_is_ok = false; + + // check TTSChunk parameter + if ((*message_)[strings::msg_params].keyExists(strings::tts_chunks)) { + if (0 < (*message_)[strings::msg_params][strings::tts_chunks].length()) { + pending_requests_.Add(hmi_apis::FunctionID::TTS_Speak); + tts_is_ok = true; + } + } + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + if ((*message_)[strings::msg_params].keyExists(strings::soft_buttons)) { + msg_params[hmi_request::soft_buttons] = + (*message_)[strings::msg_params][strings::soft_buttons]; + } + + pending_requests_.Add(hmi_apis::FunctionID::Navigation_AlertManeuver); + SendHMIRequest(hmi_apis::FunctionID::Navigation_AlertManeuver, + &msg_params, + true); + + if (tts_is_ok) { + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + msg_params[hmi_request::tts_chunks] = + (*message_)[strings::msg_params][strings::tts_chunks]; + + msg_params[strings::app_id] = app->app_id(); + SendHMIRequest(hmi_apis::FunctionID::TTS_Speak, &msg_params, true); + } +} + +void AlertManeuverRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "AlertManeuverRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + mobile_apis::Result::eType result_code = mobile_apis::Result::INVALID_ENUM; + hmi_apis::FunctionID::eType event_id = event.id(); + switch (event_id) { + case hmi_apis::FunctionID::Navigation_AlertManeuver: { + LOG4CXX_INFO(logger_, "Received Navigation_AlertManeuver event"); + + pending_requests_.Remove(event_id); + + navi_alert_maneuver_result_code_ = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + break; + } + case hmi_apis::FunctionID::TTS_Speak: { + LOG4CXX_INFO(logger_, "Received TTS_Speak event"); + + pending_requests_.Remove(event_id); + + tts_speak_result_code_ = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + break; + } + default: { + LOG4CXX_ERROR(logger_,"Received unknown event" << event.id()); + SendResponse(false, result_code, "Received unknown event"); + return; + } + } + + if (pending_requests_.IsFinal(event_id)) { + + bool result = ((hmi_apis::Common_Result::SUCCESS == + static_cast<hmi_apis::Common_Result::eType>(tts_speak_result_code_)) && + (hmi_apis::Common_Result::SUCCESS == + static_cast<hmi_apis::Common_Result::eType>(navi_alert_maneuver_result_code_))) || + ((hmi_apis::Common_Result::INVALID_ENUM == + static_cast<hmi_apis::Common_Result::eType>(tts_speak_result_code_)) && + (hmi_apis::Common_Result::SUCCESS == + static_cast<hmi_apis::Common_Result::eType>(navi_alert_maneuver_result_code_))); + + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>(std::max(tts_speak_result_code_, + navi_alert_maneuver_result_code_)); + + const char* return_info = NULL; + + if (result) { + if (mobile_apis::Result::INVALID_ENUM != result_) { + result_code = result_; + } else if (hmi_apis::Common_Result::UNSUPPORTED_RESOURCE == + static_cast<hmi_apis::Common_Result::eType>(result_code)) { + result_code = mobile_apis::Result::WARNINGS; + return_info = + std::string("Unsupported phoneme type sent in a prompt").c_str(); + } + } + + SendResponse(result, result_code, return_info, + &(message[strings::msg_params])); + } else { + LOG4CXX_INFO(logger_, + "There are some pending responses from HMI." + "AlertManeuverRequest still waiting."); + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/alert_maneuver_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_maneuver_response.cc new file mode 100644 index 000000000..99fcde69a --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_maneuver_response.cc @@ -0,0 +1,57 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/alert_maneuver_response.h" +#include "application_manager/application_manager_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +AlertManeuverResponse::AlertManeuverResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +AlertManeuverResponse::~AlertManeuverResponse() { +} + +void AlertManeuverResponse::Run() { + LOG4CXX_INFO(logger_, "AlertManeuverResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/alert_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_request.cc new file mode 100644 index 000000000..3201669a9 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_request.cc @@ -0,0 +1,303 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/alert_request.h" + +#include "application_manager/application_impl.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/message_helper.h" +#include <interfaces/HMI_API.h> + +namespace application_manager { + +namespace commands { + +namespace smart_objects = NsSmartDeviceLink::NsSmartObjects; + +AlertRequest::AlertRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message), + awaiting_ui_alert_response_(false), + awaiting_tts_speak_response_(false), + awaiting_tts_stop_speaking_response_(false), + response_success_(false), + flag_other_component_sent_(false), + response_result_(mobile_apis::Result::SUCCESS), + tts_speak_response_(mobile_apis::Result::INVALID_ENUM) { + subscribe_on_event(hmi_apis::FunctionID::UI_OnResetTimeout); +} + +AlertRequest::~AlertRequest() { +} + +bool AlertRequest::Init() { + + /* Timeout in milliseconds. + If omitted a standard value of 10000 milliseconds is used.*/ + if ((*message_)[strings::msg_params].keyExists(strings::duration)) { + default_timeout_ = + (*message_)[strings::msg_params][strings::duration].asUInt(); + } else { + const int32_t def_value = 5000; + default_timeout_ = def_value; + } + + return true; +} + +void AlertRequest::Run() { + LOG4CXX_INFO(logger_, "AlertRequest::Run"); + + uint32_t app_id = (*message_)[strings::params][strings::connection_key] + .asInt(); + + if (!Validate(app_id)) { + // Invalid command, abort execution + return; + } + + awaiting_ui_alert_response_ = true; + if ((*message_)[strings::msg_params].keyExists(strings::tts_chunks)) { + if (0 < (*message_)[strings::msg_params][strings::tts_chunks].length()) { + awaiting_tts_speak_response_ = true; + } + } + SendAlertRequest(app_id); + SendPlayToneNotification(app_id); + if (awaiting_tts_speak_response_) { + SendSpeakRequest(app_id); + } +} + +void AlertRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "AlertRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::UI_OnResetTimeout: { + LOG4CXX_INFO(logger_, "Received UI_OnResetTimeout event " << awaiting_tts_speak_response_ << " " + << awaiting_tts_stop_speaking_response_ << " " << awaiting_ui_alert_response_); + ApplicationManagerImpl::instance()->updateRequestTimeout( + connection_key(), correlation_id(), default_timeout()); + break; + } + case hmi_apis::FunctionID::UI_Alert: { + LOG4CXX_INFO(logger_, "Received UI_Alert event"); + DCHECK(awaiting_ui_alert_response_); + awaiting_ui_alert_response_ = false; + + if (awaiting_tts_speak_response_) { + awaiting_tts_stop_speaking_response_ = true; + SendHMIRequest(hmi_apis::FunctionID::TTS_StopSpeaking, NULL, true); + } + + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + // Mobile Alert request is successful when UI_Alert is successful + response_success_ = mobile_apis::Result::SUCCESS == result_code; + if (!response_success_) { + response_result_ = result_code; + } + response_params_ = message[strings::msg_params]; + break; + } + case hmi_apis::FunctionID::TTS_Speak: { + LOG4CXX_INFO(logger_, "Received TTS_Speak event"); + DCHECK(awaiting_tts_speak_response_); + awaiting_tts_speak_response_ = false; + tts_speak_response_ = static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + break; + } + case hmi_apis::FunctionID::TTS_StopSpeaking: { + LOG4CXX_INFO(logger_, "Received TTS_StopSpeaking event"); + DCHECK(awaiting_tts_stop_speaking_response_); + awaiting_tts_stop_speaking_response_ = false; + break; + } + default: { + LOG4CXX_ERROR(logger_,"Received unknown event" << event.id()); + return; + } + } + if (!HasHmiResponsesToWait()) { + std::string response_info(""); + if ((mobile_apis::Result::UNSUPPORTED_RESOURCE == tts_speak_response_) && + (!flag_other_component_sent_) && response_success_) { + response_success_ = false; + response_result_ = mobile_apis::Result::WARNINGS; + response_info = "Unsupported phoneme type sent in a prompt"; + } else if ((mobile_apis::Result::UNSUPPORTED_RESOURCE == + tts_speak_response_) && (mobile_apis::Result::UNSUPPORTED_RESOURCE == + response_result_) && response_success_) { + response_result_ = mobile_apis::Result::WARNINGS; + response_info = "Unsupported phoneme type sent in a prompt and " + "unsupported image sent in soft buttons"; + } else if ((mobile_apis::Result::UNSUPPORTED_RESOURCE == + tts_speak_response_) && response_success_) { + response_result_ = mobile_apis::Result::WARNINGS; + response_info = "Unsupported phoneme type sent in a prompt"; + } + SendResponse(response_success_, response_result_, + response_info.empty() ? NULL : response_info.c_str(), + &response_params_); + } +} + +bool AlertRequest::Validate(uint32_t app_id) { + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "No application associated with session key"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return false; + } + + mobile_apis::Result::eType processing_result = + MessageHelper::ProcessSoftButtons((*message_)[strings::msg_params], app); + + if (mobile_apis::Result::SUCCESS != processing_result) { + if (mobile_apis::Result::INVALID_DATA == processing_result) { + LOG4CXX_ERROR(logger_, "INVALID_DATA!"); + SendResponse(false, processing_result); + return false; + } + if (mobile_apis::Result::UNSUPPORTED_RESOURCE == processing_result) { + LOG4CXX_ERROR(logger_, "UNSUPPORTED_RESOURCE!"); + response_result_ = processing_result; + } + } + + // check if mandatory params(alertText1 and TTSChunk) specified + if ((!(*message_)[strings::msg_params].keyExists(strings::alert_text1)) + && (!(*message_)[strings::msg_params].keyExists(strings::alert_text2)) + && (!(*message_)[strings::msg_params].keyExists(strings::tts_chunks) + && (1 > (*message_)[strings::msg_params] + [strings::tts_chunks].length()))) { + LOG4CXX_ERROR_EXT(logger_, "Mandatory parameters are missing"); + SendResponse(false, mobile_apis::Result::INVALID_DATA, + "Mandatory parameters are missing"); + return false; + } + + return true; +} + +void AlertRequest::SendAlertRequest(int32_t app_id) { + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + msg_params[hmi_request::alert_strings] = smart_objects::SmartObject( + smart_objects::SmartType_Array); + + int32_t index = 0; + if ((*message_)[strings::msg_params].keyExists(strings::alert_text1)) { + msg_params[hmi_request::alert_strings][index][hmi_request::field_name] = + TextFieldName::ALERT_TEXT1; + msg_params[hmi_request::alert_strings][index][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::alert_text1]; + index++; + } + if ((*message_)[strings::msg_params].keyExists(strings::alert_text2)) { + msg_params[hmi_request::alert_strings][index][hmi_request::field_name] = + TextFieldName::ALERT_TEXT2; + msg_params[hmi_request::alert_strings][index][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::alert_text2]; + index++; + } + if ((*message_)[strings::msg_params].keyExists(strings::alert_text3)) { + msg_params[hmi_request::alert_strings][index][hmi_request::field_name] = + TextFieldName::ALERT_TEXT3; + msg_params[hmi_request::alert_strings][index][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::alert_text3]; + } + + // softButtons + if ((*message_)[strings::msg_params].keyExists(strings::soft_buttons)) { + msg_params[hmi_request::soft_buttons] = + (*message_)[strings::msg_params][strings::soft_buttons]; + } + // app_id + msg_params[strings::app_id] = app_id; + msg_params[strings::duration] = default_timeout_; + + // NAVI platform progressIndicator + if ((*message_)[strings::msg_params].keyExists(strings::progress_indicator)) { + msg_params[strings::progress_indicator] = + (*message_)[strings::msg_params][strings::progress_indicator]; + } + if (msg_params[hmi_request::alert_strings].length() > 0 || + msg_params.keyExists(hmi_request::soft_buttons)) { + flag_other_component_sent_ = true; + } + SendHMIRequest(hmi_apis::FunctionID::UI_Alert, &msg_params, true); +} + +void AlertRequest::SendSpeakRequest(int32_t app_id) { + + // crate HMI speak request + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + msg_params[hmi_request::tts_chunks] = smart_objects::SmartObject( + smart_objects::SmartType_Array); + msg_params[hmi_request::tts_chunks] = + (*message_)[strings::msg_params][strings::tts_chunks]; + msg_params[strings::app_id] = app_id; + SendHMIRequest(hmi_apis::FunctionID::TTS_Speak, &msg_params, true); +} + +void AlertRequest::SendPlayToneNotification(int32_t app_id) { + LOG4CXX_INFO(logger_, "AlertRequest::SendPlayToneNotification"); + + // check playtone parameter + if ((*message_)[strings::msg_params].keyExists(strings::play_tone)) { + if ((*message_)[strings::msg_params][strings::play_tone].asBool()) { + // crate HMI basic communication playtone request + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + CreateHMINotification(hmi_apis::FunctionID::BasicCommunication_PlayTone, + msg_params); + } + } +} + +bool AlertRequest::HasHmiResponsesToWait() { + return awaiting_ui_alert_response_ || awaiting_tts_speak_response_ + || awaiting_tts_stop_speaking_response_; +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/alert_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_response.cc new file mode 100644 index 000000000..5b8cd6557 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_response.cc @@ -0,0 +1,59 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/alert_response.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +AlertResponse::AlertResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +AlertResponse::~AlertResponse() { +} + +void AlertResponse::Run() { + LOG4CXX_INFO(logger_, "AlertResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/change_registration_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/change_registration_request.cc new file mode 100644 index 000000000..67d307bd1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/change_registration_request.cc @@ -0,0 +1,288 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include <algorithm> +#include "application_manager/commands/mobile/change_registration_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +ChangeRegistrationRequest::ChangeRegistrationRequest( + const MessageSharedPtr& message) + : CommandRequestImpl(message), + ui_result_(hmi_apis::Common_Result::INVALID_ENUM), + tts_result_(hmi_apis::Common_Result::INVALID_ENUM), + vr_result_(hmi_apis::Common_Result::INVALID_ENUM) { +} + +ChangeRegistrationRequest::~ChangeRegistrationRequest() { +} + +void ChangeRegistrationRequest::Run() { + LOG4CXX_INFO(logger_, "ChangeRegistrationRequest::Run"); + + ApplicationManagerImpl* instance = ApplicationManagerImpl::instance(); + const HMICapabilities& hmi_capabilities = instance->hmi_capabilities(); + + ApplicationSharedPtr app = instance->application(connection_key()); + if (!app) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + if (!hmi_capabilities.is_ui_cooperating()) { + ui_result_ = hmi_apis::Common_Result::UNSUPPORTED_RESOURCE; + } + + if (!hmi_capabilities.is_vr_cooperating()) { + vr_result_ = hmi_apis::Common_Result::UNSUPPORTED_RESOURCE; + } + + if (!hmi_capabilities.is_tts_cooperating()) { + tts_result_ = hmi_apis::Common_Result::UNSUPPORTED_RESOURCE; + } + + const int32_t hmi_language = + (*message_)[strings::msg_params][strings::hmi_display_language].asInt(); + + const int32_t language = + (*message_)[strings::msg_params][strings::language].asInt(); + + if (false == + (IsLanguageSupportedByUI(hmi_language) && + IsLanguageSupportedByVR(language) && + IsLanguageSupportedByTTS(language))) { + LOG4CXX_ERROR(logger_, "Language is not supported"); + SendResponse(false, mobile_apis::Result::REJECTED); + return; + } + + pending_requests_.Add(hmi_apis::FunctionID::UI_ChangeRegistration); + pending_requests_.Add(hmi_apis::FunctionID::VR_ChangeRegistration); + pending_requests_.Add(hmi_apis::FunctionID::TTS_ChangeRegistration); + + // UI processing + smart_objects::SmartObject ui_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + ui_params[strings::language] = hmi_language; + ui_params[strings::app_id] = app->app_id(); + + SendHMIRequest(hmi_apis::FunctionID::UI_ChangeRegistration, + &ui_params, true); + + // VR processing + smart_objects::SmartObject vr_params = + smart_objects::SmartObject(smart_objects::SmartType_Map); + + vr_params[strings::language] = + (*message_)[strings::msg_params][strings::language]; + + vr_params[strings::app_id] = app->app_id(); + + SendHMIRequest(hmi_apis::FunctionID::VR_ChangeRegistration, + &vr_params, true); + + // TTS processing + smart_objects::SmartObject tts_params = + smart_objects::SmartObject(smart_objects::SmartType_Map); + + tts_params[strings::language] = + (*message_)[strings::msg_params][strings::language]; + + tts_params[strings::app_id] = app->app_id(); + + SendHMIRequest(hmi_apis::FunctionID::TTS_ChangeRegistration, + &tts_params, true); +} + +bool ChangeRegistrationRequest::WasAnySuccess( + const hmi_apis::Common_Result::eType ui, + const hmi_apis::Common_Result::eType vr, + const hmi_apis::Common_Result::eType tts) { + + return + hmi_apis::Common_Result::SUCCESS == ui || + hmi_apis::Common_Result::SUCCESS == vr || + hmi_apis::Common_Result::SUCCESS == tts; +} + +void ChangeRegistrationRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "ChangeRegistrationRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + hmi_apis::FunctionID::eType event_id = event.id(); + + switch (event_id) { + case hmi_apis::FunctionID::UI_ChangeRegistration: { + LOG4CXX_INFO(logger_, "Received UI_ChangeRegistration event"); + pending_requests_.Remove(event_id); + ui_result_ = static_cast<hmi_apis::Common_Result::eType>( + message[strings::params][hmi_response::code].asInt()); + break; + } + case hmi_apis::FunctionID::VR_ChangeRegistration: { + LOG4CXX_INFO(logger_, "Received VR_ChangeRegistration event"); + pending_requests_.Remove(event_id); + vr_result_ = static_cast<hmi_apis::Common_Result::eType>( + message[strings::params][hmi_response::code].asInt()); + break; + } + case hmi_apis::FunctionID::TTS_ChangeRegistration: { + LOG4CXX_INFO(logger_, "Received TTS_ChangeRegistration event"); + pending_requests_.Remove(event_id); + tts_result_ = static_cast<hmi_apis::Common_Result::eType>( + message[strings::params][hmi_response::code].asInt()); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event_id); + return; + } + } + + if (pending_requests_.IsFinal(event_id)) { + ApplicationSharedPtr application = + ApplicationManagerImpl::instance()->application(connection_key()); + + if (!application) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + return; + } + + if (hmi_apis::Common_Result::SUCCESS == ui_result_) { + application->set_ui_language(static_cast<mobile_api::Language::eType>( + (*message_)[strings::msg_params][strings::hmi_display_language].asInt())); + } + + if (hmi_apis::Common_Result::SUCCESS == vr_result_ + || hmi_apis::Common_Result::SUCCESS == tts_result_) { + application->set_language(static_cast<mobile_api::Language::eType>( + (*message_)[strings::msg_params][strings::language].asInt())); + } + + int32_t greates_result_code = std::max(std::max(ui_result_, vr_result_), + tts_result_); + + (*message_)[strings::params][strings::function_id] = + mobile_apis::FunctionID::eType::ChangeRegistrationID; + + SendResponse(WasAnySuccess(ui_result_, vr_result_, tts_result_), + static_cast<mobile_apis::Result::eType>(greates_result_code), + NULL, &(message[strings::msg_params])); + } else { + LOG4CXX_INFO(logger_, + "There are some pending responses from HMI." + "ChangeRegistrationRequest still waiting."); + } +} + +bool ChangeRegistrationRequest::IsLanguageSupportedByUI( + const int32_t& hmi_display_lang) { + + const HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + const smart_objects::SmartObject* ui_languages = + hmi_capabilities.ui_supported_languages(); + + if (!ui_languages) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + return false; + } + + for (size_t i = 0; i < ui_languages->length(); ++i) { + if (hmi_display_lang == ui_languages->getElement(i).asInt()) { + return true; + } + } + + LOG4CXX_ERROR(logger_, "Language isn't supported by UI"); + + return false; +} + +bool ChangeRegistrationRequest::IsLanguageSupportedByVR( + const int32_t& hmi_display_lang) { + const HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + const smart_objects::SmartObject* vr_languages = + hmi_capabilities.vr_supported_languages(); + + if (!vr_languages) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + return false; + } + + for (size_t i = 0; i < vr_languages->length(); ++i) { + if (hmi_display_lang == vr_languages->getElement(i).asInt()) { + return true; + } + } + + LOG4CXX_ERROR(logger_, "Language isn't supported by VR"); + + return false; +} + +bool ChangeRegistrationRequest::IsLanguageSupportedByTTS( + const int32_t& hmi_display_lang) { + const HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + const smart_objects::SmartObject* tts_languages = + hmi_capabilities.tts_supported_languages(); + + if (!tts_languages) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + return false; + } + + for (size_t i = 0; i < tts_languages->length(); ++i) { + if (hmi_display_lang == tts_languages->getElement(i).asInt()) { + return true; + break; + } + } + + LOG4CXX_ERROR(logger_, "Language isn't supported by TTS"); + return false; +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/change_registration_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/change_registration_response.cc new file mode 100644 index 000000000..13c926ec8 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/change_registration_response.cc @@ -0,0 +1,57 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/change_registration_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +ChangeRegistrationResponse::ChangeRegistrationResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +ChangeRegistrationResponse::~ChangeRegistrationResponse() { +} + +void ChangeRegistrationResponse::Run() { + LOG4CXX_INFO(logger_, "ChangeRegistrationResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc new file mode 100644 index 000000000..ae8865679 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc @@ -0,0 +1,244 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include <string.h> +#include <string> +#include <algorithm> +#include <vector> +#include "application_manager/commands/mobile/create_interaction_choice_set_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" + +namespace application_manager { + +namespace commands { + +CreateInteractionChoiceSetRequest::CreateInteractionChoiceSetRequest( + const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +CreateInteractionChoiceSetRequest::~CreateInteractionChoiceSetRequest() { +} + +void CreateInteractionChoiceSetRequest::Run() { + LOG4CXX_INFO(logger_, "CreateInteractionChoiceSetRequest::Run"); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + + if (!app) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + mobile_apis::Result::eType verification_result = + MessageHelper::VerifyImageFiles((*message_)[strings::msg_params], app); + + mobile_apis::Result::eType result_ = mobile_apis::Result::SUCCESS; + if (mobile_apis::Result::SUCCESS != verification_result) { + if (mobile_apis::Result::INVALID_DATA == verification_result) { + LOG4CXX_ERROR(logger_, "VerifyImageFiles INVALID_DATA!"); + SendResponse(false, verification_result); + return; + } + if (mobile_apis::Result::UNSUPPORTED_RESOURCE == verification_result) { + LOG4CXX_ERROR(logger_, "VerifyImageFiles UNSUPPORTED_RESOURCE!"); + result_ = verification_result; + } + } + + const int32_t choice_set_id = (*message_)[strings::msg_params] + [strings::interaction_choice_set_id].asInt(); + + if (app->FindChoiceSet(choice_set_id)) { + LOG4CXX_ERROR(logger_, "Invalid ID"); + SendResponse(false, mobile_apis::Result::INVALID_ID); + return; + } + + mobile_apis::Result::eType result = CheckChoiceSet(app); + if (mobile_apis::Result::SUCCESS != result) { + SendResponse(false, result); + return; + } + + app->AddChoiceSet(choice_set_id, (*message_)[strings::msg_params]); + + SendResponse(true, result_); + app->UpdateHash(); +} + +mobile_apis::Result::eType CreateInteractionChoiceSetRequest::CheckChoiceSet( + ApplicationConstSharedPtr app) { + LOG4CXX_INFO(logger_, "CreateInteractionChoiceSetRequest::CheckChoiceSet"); + + const smart_objects::SmartArray* new_choice_set_array = + (*message_)[strings::msg_params][strings::choice_set].asArray(); + + smart_objects::SmartArray::const_iterator it_array = + new_choice_set_array->begin(); + + smart_objects::SmartArray::const_iterator it_array_end = + new_choice_set_array->end(); + + // Self check of new choice set for params coincidence + for (; it_array != it_array_end; ++it_array) { + + CoincidencePredicateChoiceID c((*it_array)[strings::choice_id].asInt()); + if (1 != std::count_if( + new_choice_set_array->begin(), + new_choice_set_array->end(), + c)) { + + LOG4CXX_ERROR(logger_, "Incoming choice set has duplicate IDs."); + return mobile_apis::Result::INVALID_ID; + } + + // Check new choice set params along with already registered choice sets + const ChoiceSetMap& app_choice_set_map = app->choice_set_map(); + ChoiceSetMap::const_iterator it = app_choice_set_map.begin(); + ChoiceSetMap::const_iterator itEnd = app_choice_set_map.end(); + for (; it != itEnd; ++it) { + const smart_objects::SmartObject* app_choice_set = it->second; + if (NULL != app_choice_set) { + + const smart_objects::SmartArray* curr_choice_set = + (*app_choice_set)[strings::choice_set].asArray(); + + if (0 != std::count_if( + curr_choice_set->begin(), + curr_choice_set->end(), + c)) { + LOG4CXX_ERROR(logger_, "Incoming choice ID already exists."); + return mobile_apis::Result::INVALID_ID; + } + } + } + + CoincidencePredicateMenuName m((*it_array)[strings::menu_name].asString()); + if (1 != std::count_if( + new_choice_set_array->begin(), + new_choice_set_array->end(), + m)) { + + LOG4CXX_ERROR(logger_, "Incoming choice set has duplicate menu names."); + return mobile_apis::Result::DUPLICATE_NAME; + } + + // Check coincidence inside the current choice + const smart_objects::SmartArray* vr_array = + (*it_array)[strings::vr_commands].asArray(); + + smart_objects::SmartArray::const_iterator it_vr = vr_array->begin(); + smart_objects::SmartArray::const_iterator it_vr_end = vr_array->end(); + + for (; it_vr != it_vr_end; ++it_vr) { + CoincidencePredicateVRCommands v((*it_vr)); + if (1 != std::count_if(vr_array->begin(), vr_array->end(), v)) { + + LOG4CXX_ERROR(logger_, + "Incoming choice set has duplicate VR command(s)"); + + return mobile_apis::Result::DUPLICATE_NAME; + } + } + + // Check along with VR commands in other choices in the new set + smart_objects::SmartArray::const_iterator it_same_array = + new_choice_set_array->begin(); + + smart_objects::SmartArray::const_iterator it_same_array_end = + new_choice_set_array->end(); + + for (; it_same_array != it_same_array_end; ++it_same_array) { + + // Skip check for itself + if ((*it_array)[strings::choice_id] == + (*it_same_array)[strings::choice_id]) { + + continue; + } + + if (compareSynonyms((*it_array), (*it_same_array))) { + + LOG4CXX_ERROR(logger_, + "Incoming choice set has duplicate VR command(s)."); + + return mobile_apis::Result::DUPLICATE_NAME; + } + } + } + + return mobile_apis::Result::SUCCESS; +} + +bool CreateInteractionChoiceSetRequest::compareSynonyms( + const NsSmartDeviceLink::NsSmartObjects::SmartObject& choice1, + const NsSmartDeviceLink::NsSmartObjects::SmartObject& choice2) { + + smart_objects::SmartArray* vr_cmds_1 = + choice1[strings::vr_commands].asArray(); + DCHECK(vr_cmds_1 != NULL); + smart_objects::SmartArray* vr_cmds_2 = + choice2[strings::vr_commands].asArray(); + DCHECK(vr_cmds_2 != NULL); + + smart_objects::SmartArray::iterator it; + it = std::find_first_of(vr_cmds_1->begin(), vr_cmds_1->end(), + vr_cmds_2->begin(), vr_cmds_2->end(), + CreateInteractionChoiceSetRequest::compareStr); + + + if (it != vr_cmds_1->end()) { + LOG4CXX_INFO(logger_, "Incoming choice set has duplicated VR synonyms " + << it->asString()); + return true; + } + + return false; +} + +bool CreateInteractionChoiceSetRequest::compareStr( + const NsSmartDeviceLink::NsSmartObjects::SmartObject& str1, + const NsSmartDeviceLink::NsSmartObjects::SmartObject& str2) { + + return 0 == strcasecmp(str1.asCharArray(), str2.asCharArray()); +} + + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_response.cc new file mode 100644 index 000000000..8d6ea1b34 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_response.cc @@ -0,0 +1,68 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/create_interaction_choice_set_response.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +CreateInteractionChoiceSetResponse::CreateInteractionChoiceSetResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +CreateInteractionChoiceSetResponse::~CreateInteractionChoiceSetResponse() { +} + +void CreateInteractionChoiceSetResponse::Run() { + LOG4CXX_INFO(logger_, "CreateInteractionChoiceSetResponse::Run"); + + // check if response false + if (true == (*message_)[strings::msg_params].keyExists(strings::success)) { + if ((*message_)[strings::msg_params][strings::success].asBool() == false) { + LOG4CXX_ERROR(logger_, "Success = false"); + SendResponse(false); + return; + } + } + + SendResponse(true); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_command_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_command_request.cc new file mode 100644 index 000000000..3f5e39641 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_command_request.cc @@ -0,0 +1,180 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/delete_command_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +DeleteCommandRequest::DeleteCommandRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message), + is_ui_send_(false), + is_vr_send_(false), + is_ui_received_(false), + is_vr_received_(false), + ui_result_(hmi_apis::Common_Result::INVALID_ENUM), + vr_result_(hmi_apis::Common_Result::INVALID_ENUM) { +} + +DeleteCommandRequest::~DeleteCommandRequest() { +} + +void DeleteCommandRequest::Run() { + LOG4CXX_INFO(logger_, "DeleteCommandRequest::Run"); + + ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + + if (!application) { + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + LOG4CXX_ERROR(logger_, "Application is not registered"); + return; + } + + smart_objects::SmartObject* command = application->FindCommand( + (*message_)[strings::msg_params][strings::cmd_id].asInt()); + + if (!command) { + SendResponse(false, mobile_apis::Result::INVALID_ID); + LOG4CXX_ERROR(logger_, "Invalid ID"); + return; + } + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + msg_params[strings::cmd_id] = + (*message_)[strings::msg_params][strings::cmd_id]; + msg_params[strings::app_id] = application->app_id(); + + // we should specify amount of required responses in the 1st request + uint32_t chaining_counter = 0; + if ((*command).keyExists(strings::menu_params)) { + ++chaining_counter; + } + + if ((*command).keyExists(strings::vr_commands)) { + ++chaining_counter; + } + + if ((*command).keyExists(strings::menu_params)) { + is_ui_send_ = true; + + SendHMIRequest(hmi_apis::FunctionID::UI_DeleteCommand, &msg_params, true); + } + // check vr params + if ((*command).keyExists(strings::vr_commands)) { + is_vr_send_ = true; + + SendHMIRequest(hmi_apis::FunctionID::VR_DeleteCommand, &msg_params, true); + } +} + +void DeleteCommandRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "DeleteCommandRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::UI_DeleteCommand: { + LOG4CXX_INFO(logger_, "Received UI_DeleteCommand event"); + is_ui_received_ = true; + ui_result_ = static_cast<hmi_apis::Common_Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + break; + } + case hmi_apis::FunctionID::VR_DeleteCommand: { + LOG4CXX_INFO(logger_, "Received VR_DeleteCommand event"); + is_vr_received_ = true; + vr_result_ = static_cast<hmi_apis::Common_Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + break; + } + default: { + LOG4CXX_ERROR(logger_,"Received unknown event" << event.id()); + return; + } + } + + if (!IsPendingResponseExist()) { + ApplicationSharedPtr application = + ApplicationManagerImpl::instance()->application(connection_key()); + + if (!application) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + return; + } + + smart_objects::SmartObject* command = application->FindCommand( + (*message_)[strings::msg_params][strings::cmd_id].asInt()); + + if (command) { + mobile_apis::Result::eType result_code = mobile_apis::Result::INVALID_ENUM; + + bool result = ((hmi_apis::Common_Result::SUCCESS == ui_result_) && + (hmi_apis::Common_Result::SUCCESS == vr_result_)) || + ((hmi_apis::Common_Result::SUCCESS == ui_result_) && + (hmi_apis::Common_Result::INVALID_ENUM == vr_result_)) || + ((hmi_apis::Common_Result::INVALID_ENUM == ui_result_) && + (hmi_apis::Common_Result::SUCCESS == vr_result_)); + + if (result) { + application->RemoveCommand( + (*message_)[strings::msg_params][strings::cmd_id].asInt()); + } + + if (!result && (hmi_apis::Common_Result::REJECTED == ui_result_)) { + result_code = static_cast<mobile_apis::Result::eType>(vr_result_); + } else { + result_code = static_cast<mobile_apis::Result::eType>( + std::max(ui_result_, vr_result_)); + } + + SendResponse(result, result_code, NULL, &(message[strings::msg_params])); + } + } +} + +bool DeleteCommandRequest::IsPendingResponseExist() { + return is_ui_send_ != is_ui_received_ || is_vr_send_ != is_vr_received_; +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_command_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_command_response.cc new file mode 100644 index 000000000..812e58743 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_command_response.cc @@ -0,0 +1,56 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/delete_command_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +DeleteCommandResponse::DeleteCommandResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +DeleteCommandResponse::~DeleteCommandResponse() { +} + +void DeleteCommandResponse::Run() { + LOG4CXX_INFO(logger_, "DeleteCommandResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_file_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_file_request.cc new file mode 100644 index 000000000..9fc89b25d --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_file_request.cc @@ -0,0 +1,96 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/delete_file_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "config_profile/profile.h" +#include "utils/file_system.h" + +namespace application_manager { + +namespace commands { + +DeleteFileRequest::DeleteFileRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +DeleteFileRequest::~DeleteFileRequest() { +} + +void DeleteFileRequest::Run() { + LOG4CXX_INFO(logger_, "DeleteFileRequest::Run"); + + ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + + if (!application) { + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + LOG4CXX_ERROR(logger_, "Application is not registered"); + return; + } + + if (mobile_api::HMILevel::HMI_NONE == application->hmi_level() && + profile::Profile::instance()->delete_file_in_none() <= application->delete_file_in_none_count()) { + // If application is in the HMI_NONE level the quantity of allowed + // DeleteFile request is limited by the configuration profile + LOG4CXX_ERROR(logger_, "Too many requests from the app with HMILevel HMI_NONE "); + SendResponse(false, mobile_apis::Result::REJECTED); + return; + } + + const std::string& sync_file_name = + (*message_)[strings::msg_params][strings::sync_file_name].asString(); + + std::string relative_file_path = application->name(); + relative_file_path += "/"; + relative_file_path += sync_file_name; + + std::string full_file_path = file_system::FullPath(relative_file_path); + + if (file_system::FileExists(full_file_path)) { + if (file_system::DeleteFile(full_file_path)) { + application->DeleteFile(sync_file_name); + application->increment_delete_file_in_none_count(); + SendResponse(true, mobile_apis::Result::SUCCESS); + } else { + SendResponse(false, mobile_apis::Result::GENERIC_ERROR); + } + } else { + SendResponse(false, mobile_apis::Result::INVALID_DATA); + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_file_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_file_response.cc new file mode 100644 index 000000000..3892114f1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_file_response.cc @@ -0,0 +1,67 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/delete_file_response.h" +#include "utils/file_system.h" +#include "application_manager/application_impl.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +DeleteFileResponse::DeleteFileResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +DeleteFileResponse::~DeleteFileResponse() { +} + +void DeleteFileResponse::Run() { + LOG4CXX_INFO(logger_, "DeleteFileResponse::Run"); + uint32_t app_id = (*message_)[strings::params][strings::connection_key] + .asUInt(); + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + if (!app) { + LOG4CXX_ERROR(logger_, "Application not registered"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + (*message_)[strings::msg_params][strings::space_available] = + static_cast<int32_t>(file_system::GetAvailableSpaceForApp(app->name())); + SendResponse((*message_)[strings::msg_params][strings::success].asBool()); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_request.cc new file mode 100644 index 000000000..c98f16c97 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_request.cc @@ -0,0 +1,115 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/delete_interaction_choice_set_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +DeleteInteractionChoiceSetRequest::DeleteInteractionChoiceSetRequest( + const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +DeleteInteractionChoiceSetRequest::~DeleteInteractionChoiceSetRequest() { +} + +void DeleteInteractionChoiceSetRequest::Run() { + LOG4CXX_INFO(logger_, "DeleteInteractionChoiceSetRequest::Run"); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "No application associated with session key"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + const int32_t choise_set_id = + (*message_)[strings::msg_params] + [strings::interaction_choice_set_id].asInt(); + + if (!app->FindChoiceSet(choise_set_id)) { + LOG4CXX_ERROR_EXT(logger_, "INVALID_ID"); + SendResponse(false, mobile_apis::Result::INVALID_ID); + return; + } + + if (ChoiceSetInUse(app)) { + LOG4CXX_ERROR_EXT(logger_, "Choice set currently in use"); + SendResponse(false, mobile_apis::Result::IN_USE); + return; + } + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + msg_params[strings::interaction_choice_set_id] = choise_set_id; + msg_params[strings::app_id] = app->app_id(); + + app->RemoveChoiceSet(choise_set_id); + + SendResponse(true, mobile_apis::Result::SUCCESS); + /*CreateHMIRequest(hmi_apis::FunctionID::UI_DeleteInteractionChoiceSet, + msg_params, true);*/ +} + +bool DeleteInteractionChoiceSetRequest::ChoiceSetInUse(ApplicationConstSharedPtr app) { + if (app->is_perform_interaction_active()) { + // retrieve stored choice sets for perform interaction + const PerformChoiceSetMap& choice_set_map = app + ->performinteraction_choice_set_map(); + + PerformChoiceSetMap::const_iterator it = choice_set_map.begin(); + for (; choice_set_map.end() != it; ++it) { + if (it->first + == (*message_)[strings::msg_params] + [strings::interaction_choice_set_id].asInt()) { + LOG4CXX_ERROR_EXT(logger_, + "DeleteInteractionChoiceSetRequest::ChoiceSetInUse"); + return true; + } + } + } + return false; +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_response.cc new file mode 100644 index 000000000..d260add7c --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_response.cc @@ -0,0 +1,77 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/delete_interaction_choice_set_response.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +DeleteInteractionChoiceSetResponse::DeleteInteractionChoiceSetResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +DeleteInteractionChoiceSetResponse::~DeleteInteractionChoiceSetResponse() { +} + +void DeleteInteractionChoiceSetResponse::Run() { + LOG4CXX_INFO(logger_, "DeleteInteractionChoiceSetResponse::Run"); + + // check if response false + if (true == (*message_)[strings::msg_params].keyExists(strings::success)) { + if ((*message_)[strings::msg_params][strings::success].asBool() == false) { + LOG4CXX_ERROR(logger_, "Success = false"); + SendResponse(false); + return; + } + } + + const int32_t code = + (*message_)[strings::msg_params][strings::result_code].asInt(); + + if (hmi_apis::Common_Result::SUCCESS == code) { + SendResponse(true); + } else { + // TODO(DK): Some logic + SendResponse(false); + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_sub_menu_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_sub_menu_request.cc new file mode 100644 index 000000000..bcd55a38f --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_sub_menu_request.cc @@ -0,0 +1,178 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/delete_sub_menu_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +DeleteSubMenuRequest::DeleteSubMenuRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +DeleteSubMenuRequest::~DeleteSubMenuRequest() { +} + +void DeleteSubMenuRequest::Run() { + LOG4CXX_INFO(logger_, "DeleteSubMenuRequest::Run"); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + + if (!app) { + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + LOG4CXX_ERROR(logger_, "Application is not registered"); + return; + } + + if (!app->FindSubMenu( + (*message_)[strings::msg_params][strings::menu_id].asInt())) { + SendResponse(false, mobile_apis::Result::INVALID_ID); + LOG4CXX_ERROR(logger_, "Invalid ID"); + return; + } + + // delete sub menu items from SDL and HMI + DeleteSubMenuVRCommands(app); + DeleteSubMenuUICommands(app); + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + msg_params[strings::menu_id] = + (*message_)[strings::msg_params][strings::menu_id]; + msg_params[strings::app_id] = app->app_id(); + + SendHMIRequest(hmi_apis::FunctionID::UI_DeleteSubMenu, &msg_params, true); +} + +void DeleteSubMenuRequest::DeleteSubMenuVRCommands(ApplicationConstSharedPtr app) { + LOG4CXX_INFO(logger_, "DeleteSubMenuRequest::DeleteSubMenuVRCommands"); + + const CommandsMap& commands = app->commands_map(); + CommandsMap::const_iterator it = commands.begin(); + + for (; commands.end() != it; ++it) { + + if (!(*it->second).keyExists(strings::vr_commands)) { + continue; + } + + if ((*message_)[strings::msg_params][strings::menu_id].asInt() + == (*it->second)[strings::menu_params] + [hmi_request::parent_id].asInt()) { + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::cmd_id] = (*it->second)[strings::cmd_id].asInt(); + msg_params[strings::app_id] = app->app_id(); + + SendHMIRequest(hmi_apis::FunctionID::VR_DeleteCommand, &msg_params); + } + } +} + +void DeleteSubMenuRequest::DeleteSubMenuUICommands(ApplicationSharedPtr const app) { + LOG4CXX_INFO(logger_, "DeleteSubMenuRequest::DeleteSubMenuUICommands"); + + const CommandsMap& commands = app->commands_map(); + CommandsMap::const_iterator it = commands.begin(); + + while (commands.end() != it) { + + if (!(*it->second).keyExists(strings::menu_params)) { + continue; + } + + if ((*message_)[strings::msg_params][strings::menu_id].asInt() + == (*it->second)[strings::menu_params] + [hmi_request::parent_id].asInt()) { + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::app_id] = app->app_id(); + msg_params[strings::cmd_id] = (*it->second)[strings::cmd_id].asInt(); + + app->RemoveCommand((*it->second)[strings::cmd_id].asInt()); + + it = commands.begin(); // Can not relay on + // iterators after erase was called + + SendHMIRequest(hmi_apis::FunctionID::UI_DeleteCommand, &msg_params); + } else { + ++it; + } + } +} + +void DeleteSubMenuRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "DeleteSubMenuRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::UI_DeleteSubMenu: { + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + bool result = mobile_apis::Result::SUCCESS == result_code; + + ApplicationSharedPtr application = + ApplicationManagerImpl::instance()->application(connection_key()); + + if (!application) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + return; + } + + if (result) { + application->RemoveSubMenu( + (*message_)[strings::msg_params][strings::menu_id].asInt()); + } + + SendResponse(result, result_code, NULL, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + return; + } + } +} + + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_sub_menu_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_sub_menu_response.cc new file mode 100644 index 000000000..0a25a1161 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_sub_menu_response.cc @@ -0,0 +1,57 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/delete_sub_menu_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +DeleteSubMenuResponse::DeleteSubMenuResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +DeleteSubMenuResponse::~DeleteSubMenuResponse() { +} + +void DeleteSubMenuResponse::Run() { + LOG4CXX_INFO(logger_, "DeleteSubMenuResponse::Run"); + + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc new file mode 100644 index 000000000..162d1cdc3 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc @@ -0,0 +1,81 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/diagnostic_message_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +DiagnosticMessageRequest::DiagnosticMessageRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +DiagnosticMessageRequest::~DiagnosticMessageRequest() { +} + +void DiagnosticMessageRequest::Run() { + LOG4CXX_INFO(logger_, "DiagnosticMessageRequest::Run"); + + SendHMIRequest(hmi_apis::FunctionID::VehicleInfo_DiagnosticMessage, + &(*message_), true); +} + +void DiagnosticMessageRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "DiagnosticMessageRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::VehicleInfo_DiagnosticMessage: { + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + bool result = mobile_apis::Result::SUCCESS == result_code; + + SendResponse(result, result_code, NULL, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + return; + } + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/diagnostic_message_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/diagnostic_message_response.cc new file mode 100644 index 000000000..2a8b234ff --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/diagnostic_message_response.cc @@ -0,0 +1,56 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/diagnostic_message_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +DiagnosticMessageResponse::DiagnosticMessageResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +DiagnosticMessageResponse::~DiagnosticMessageResponse() { +} + +void DiagnosticMessageResponse::Run() { + LOG4CXX_INFO(logger_, "DiagnosticMessageResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/dial_number_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/dial_number_request.cc new file mode 100644 index 000000000..140f43128 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/dial_number_request.cc @@ -0,0 +1,57 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/dial_number_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +namespace commands { + +DialNumberRequest::DialNumberRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +DialNumberRequest::~DialNumberRequest() { +} + +void DialNumberRequest::Run() { + LOG4CXX_INFO(logger_, "DialNumberRequest::Run"); + + SendResponse(false, mobile_apis::Result::UNSUPPORTED_REQUEST); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/encoded_sync_pdata_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/encoded_sync_pdata_request.cc new file mode 100644 index 000000000..53dc83c25 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/encoded_sync_pdata_request.cc @@ -0,0 +1,113 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/encoded_sync_pdata_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" +#include "utils/file_system.h" +#include "encryption/Base64.h" + +namespace application_manager { + +namespace commands { + +const std::string EncodedSyncPDataRequest::TEMPORARY_HARDCODED_FILENAME = + "policy_sync_data.dat"; +const std::string EncodedSyncPDataRequest::TEMPORARY_HARDCODED_FOLDERNAME = + "policies"; + +EncodedSyncPDataRequest::EncodedSyncPDataRequest( + const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +EncodedSyncPDataRequest::~EncodedSyncPDataRequest() { +} + +void EncodedSyncPDataRequest::Run() { + LOG4CXX_INFO(logger_, "EncodedSyncPDataRequest::Run"); + + ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application( + connection_key()); + + if (!application) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + const std::string& sync_file_name = TEMPORARY_HARDCODED_FILENAME; + + size_t data_array_size = (*message_)[strings::msg_params][strings::data]. + length(); + + std::string encoded_string_pdata; + for (size_t i = 0; i < data_array_size; ++i) { + encoded_string_pdata += (*message_)[strings::msg_params][strings::data][i] + .asString(); + } + + LOG4CXX_INFO(logger_, "encoded_string_pdata = " << encoded_string_pdata); + + const std::string string_pdata = base64_decode(encoded_string_pdata); + + LOG4CXX_INFO(logger_, "string_pdata = " << string_pdata); + + const std::vector<uint8_t> file_data(string_pdata.begin(), + string_pdata.end()); + + std::string relative_file_path = file_system::CreateDirectory( + TEMPORARY_HARDCODED_FOLDERNAME); + relative_file_path += "/"; + relative_file_path += sync_file_name; + + mobile_apis::Result::eType save_result = + ApplicationManagerImpl::instance()->SaveBinary( + application->name(), + file_data, + relative_file_path); + + switch(save_result) { + case mobile_apis::Result::SUCCESS: + SendResponse(true, save_result); + break; + default: + SendResponse(false, save_result); + break; + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/encoded_sync_pdata_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/encoded_sync_pdata_response.cc new file mode 100644 index 000000000..0c738bf3c --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/encoded_sync_pdata_response.cc @@ -0,0 +1,65 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/encoded_sync_pdata_response.h" + +namespace application_manager { + +namespace commands { + +EncodedSyncPDataResponse::EncodedSyncPDataResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +EncodedSyncPDataResponse::~EncodedSyncPDataResponse() { +} + +void EncodedSyncPDataResponse::Run() { + LOG4CXX_INFO(logger_, "EncodedSyncPDataResponse::Run"); + + // check if response false + if (true == (*message_)[strings::msg_params].keyExists(strings::success)) { + if ((*message_)[strings::msg_params][strings::success].asBool() == false) { + LOG4CXX_ERROR(logger_, "Success = false"); + SendResponse(false); + return; + } + } + + SendResponse(true); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc new file mode 100644 index 000000000..71eec0e77 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc @@ -0,0 +1,88 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/end_audio_pass_thru_request.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +EndAudioPassThruRequest::EndAudioPassThruRequest( + const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +EndAudioPassThruRequest::~EndAudioPassThruRequest() { +} + +void EndAudioPassThruRequest::Run() { + LOG4CXX_INFO(logger_, "EndAudioPassThruRequest::Run"); + bool ended_successfully = ApplicationManagerImpl::instance()->end_audio_pass_thru(); + + if (ended_successfully) { + SendHMIRequest(hmi_apis::FunctionID::UI_EndAudioPassThru, NULL, true); + int32_t session_key = + (*message_)[strings::params][strings::connection_key].asInt(); + ApplicationManagerImpl::instance()->StopAudioPassThru(session_key); + } else { + SendResponse(false, mobile_apis::Result::REJECTED, + "No PerformAudioPassThru is now active"); + } +} + +void EndAudioPassThruRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "EndAudioPassThruRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::UI_EndAudioPassThru: { + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + bool result = mobile_apis::Result::SUCCESS == result_code; + + SendResponse(result, result_code, NULL, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + return; + } + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_response.cc new file mode 100644 index 000000000..128d921f9 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_response.cc @@ -0,0 +1,57 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/end_audio_pass_thru_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +EndAudioPassThruResponse::EndAudioPassThruResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +EndAudioPassThruResponse::~EndAudioPassThruResponse() { +} + +void EndAudioPassThruResponse::Run() { + LOG4CXX_INFO(logger_, "EndAudioPassThruResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/generic_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/generic_response.cc new file mode 100644 index 000000000..69c841b2f --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/generic_response.cc @@ -0,0 +1,65 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/generic_response.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +namespace commands { + +void GenericResponse::Run() { + /*NsSmartDeviceLink::NsSmartObjects::SmartObject response; + + response[strings::params][strings::correlation_id] = + (*message_)[strings::params][strings::correlation_id]; + response[strings::params][strings::protocol_version] = + (*message_)[strings::params][strings::protocol_version]; + response[strings::params][strings::connection_key] = + (*message_)[strings::params][strings::connection_key]; + + response[strings::msg_params][strings::success] = false; + */ + + (*message_)[strings::params][strings::message_type] = MessageType::kResponse; + (*message_)[strings::msg_params][strings::success] = false; + (*message_)[strings::msg_params][strings::result_code] = + mobile_apis::Result::INVALID_DATA; + + SendResponse(false); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/get_dtcs_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/get_dtcs_request.cc new file mode 100644 index 000000000..f0c91db64 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/get_dtcs_request.cc @@ -0,0 +1,104 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/get_dtcs_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +GetDTCsRequest::GetDTCsRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +GetDTCsRequest::~GetDTCsRequest() { +} + +void GetDTCsRequest::Run() { + LOG4CXX_INFO(logger_, "GetDTCsRequest::Run"); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + + if (!app) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + if (mobile_api::HMILevel::HMI_NONE == app->hmi_level()) { + LOG4CXX_ERROR(logger_, "App has not been activated"); + SendResponse(false, mobile_apis::Result::REJECTED); + return; + } + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + msg_params[strings::ecu_name] = + (*message_)[strings::msg_params][strings::ecu_name]; + msg_params[strings::dtc_mask] = + (*message_)[strings::msg_params][strings::dtc_mask]; + msg_params[strings::app_id] = app->app_id(); + + SendHMIRequest(hmi_apis::FunctionID::VehicleInfo_GetDTCs, &msg_params, true); +} + +void GetDTCsRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "GetDTCsRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::VehicleInfo_GetDTCs: { + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + bool result = mobile_apis::Result::SUCCESS == result_code; + + SendResponse(result, result_code, NULL, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + return; + } + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/get_dtcs_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/get_dtcs_response.cc new file mode 100644 index 000000000..2ed7a9295 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/get_dtcs_response.cc @@ -0,0 +1,56 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/get_dtcs_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +GetDTCsResponse::GetDTCsResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +GetDTCsResponse::~GetDTCsResponse() { +} + +void GetDTCsResponse::Run() { + LOG4CXX_INFO(logger_, "GetDTCsResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc new file mode 100644 index 000000000..7292dfa99 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc @@ -0,0 +1,294 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include <string> +#include "application_manager/commands/mobile/get_vehicle_data_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +namespace str = strings; + +#ifdef WEB_HMI +GetVehicleDataRequest::GetVehicleDataRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +GetVehicleDataRequest::~GetVehicleDataRequest() { +} + +void GetVehicleDataRequest::Run() { + LOG4CXX_INFO(logger_, "GetVehicleDataRequest::Run"); + + int32_t app_id = (*message_)[strings::params][strings::connection_key].asUInt(); + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + + if (!app) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + if (mobile_api::HMILevel::HMI_NONE == app->hmi_level()) { + LOG4CXX_ERROR(logger_, "app in HMI level HMI_NONE"); + SendResponse(false, mobile_apis::Result::REJECTED); + return; + } + + const VehicleData& vehicle_data = MessageHelper::vehicle_data(); + VehicleData::const_iterator it = vehicle_data.begin(); + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::app_id] = app->app_id(); + const int32_t min_length_msg_params = 1; + for (; vehicle_data.end() != it; ++it) { + if (true == (*message_)[str::msg_params].keyExists(it->first) + && true == (*message_)[str::msg_params][it->first].asBool()) { + msg_params[it->first] = (*message_)[strings::msg_params][it->first]; + } + } + if (msg_params.length() > min_length_msg_params) { + SendHMIRequest(hmi_apis::FunctionID::VehicleInfo_GetVehicleData, + &msg_params, true); + return; + } + SendResponse(false, mobile_apis::Result::INVALID_DATA); +} + +void GetVehicleDataRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "GetVehicleDataRequest::on_event"); + smart_objects::SmartObject message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::VehicleInfo_GetVehicleData: { + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + bool result = false; + if (mobile_apis::Result::SUCCESS == result_code || + (hmi_apis::Common_Result::DATA_NOT_AVAILABLE == + static_cast<hmi_apis::Common_Result::eType>(result_code) + && message[strings::msg_params].length() > 1)) { + result = true; + } + const char *info = NULL; + std::string error_message; + if (true == + message[strings::msg_params].keyExists(hmi_response::method)) { + message[strings::msg_params].erase(hmi_response::method); + } + if (true == message[strings::params].keyExists(strings::error_msg)) { + error_message = message[strings::params][strings::error_msg].asString(); + info = error_message.c_str(); + } + SendResponse(result, result_code, info, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + return; + } + } +} + +#endif // #ifdef WEB_HMI +#ifdef QT_HMI +GetVehicleDataRequest::GetVehicleDataRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +GetVehicleDataRequest::~GetVehicleDataRequest() { +} + +void GetVehicleDataRequest::Run() { + LOG4CXX_INFO(logger_, "GetVehicleDataRequest::Run"); + + int32_t app_id = (*message_)[strings::params][strings::connection_key].asUInt(); + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + + if (!app) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + if (mobile_api::HMILevel::HMI_NONE == app->hmi_level()) { + LOG4CXX_ERROR(logger_, "app in HMI level HMI_NONE"); + SendResponse(false, mobile_apis::Result::REJECTED); + return; + } + + const VehicleData& vehicle_data = MessageHelper::vehicle_data(); + VehicleData::const_iterator it = vehicle_data.begin(); + + for (; vehicle_data.end() != it; ++it) { + if (true == (*message_)[str::msg_params].keyExists(it->first) + && true == (*message_)[str::msg_params][it->first].asBool()) { + SendRequestsToHmi(app->app_id()); + return; + } + } + + SendResponse(false, mobile_apis::Result::INVALID_DATA); +} + +namespace { + struct Subrequest { + hmi_apis::FunctionID::eType func_id; + const char* str; + }; + Subrequest subrequests[] = { + { hmi_apis::FunctionID::VehicleInfo_GetGpsData, str::gps}, + { hmi_apis::FunctionID::VehicleInfo_GetSpeed, str::speed}, + { hmi_apis::FunctionID::VehicleInfo_GetRpm, str::rpm}, + { hmi_apis::FunctionID::VehicleInfo_GetFuelLevel, str::fuel_level}, + { hmi_apis::FunctionID::VehicleInfo_GetFuelLevelState, str::fuel_level_state}, + { hmi_apis::FunctionID::VehicleInfo_GetInstantFuelConsumption, str::instant_fuel_consumption}, + { hmi_apis::FunctionID::VehicleInfo_GetExternalTemperature, str::external_temp}, + { hmi_apis::FunctionID::VehicleInfo_GetVin, str::vin}, + { hmi_apis::FunctionID::VehicleInfo_GetPrndl, str::prndl}, + { hmi_apis::FunctionID::VehicleInfo_GetTirePressure, str::tire_pressure}, + { hmi_apis::FunctionID::VehicleInfo_GetOdometer, str::odometer}, + { hmi_apis::FunctionID::VehicleInfo_GetBeltStatus, str::belt_status}, + { hmi_apis::FunctionID::VehicleInfo_GetBodyInformation, str::body_information}, + { hmi_apis::FunctionID::VehicleInfo_GetDeviceStatus, str::device_status}, + { hmi_apis::FunctionID::VehicleInfo_GetDriverBraking, str::driver_braking}, + { hmi_apis::FunctionID::VehicleInfo_GetWiperStatus, str::wiper_status}, + { hmi_apis::FunctionID::VehicleInfo_GetHeadLampStatus, str::head_lamp_status}, + { hmi_apis::FunctionID::VehicleInfo_GetEngineTorque, str::engine_torque}, + { hmi_apis::FunctionID::VehicleInfo_GetAccPedalPosition, str::acc_pedal_pos}, + { hmi_apis::FunctionID::VehicleInfo_GetSteeringWheelAngle, str::steering_wheel_angle}, + { hmi_apis::FunctionID::VehicleInfo_GetECallInfo, str::e_call_info}, + { hmi_apis::FunctionID::VehicleInfo_GetAirbagStatus, str::airbag_status}, + { hmi_apis::FunctionID::VehicleInfo_GetEmergencyEvent, str::emergency_event}, + { hmi_apis::FunctionID::VehicleInfo_GetClusterModeStatus, str::cluster_mode_status}, + { hmi_apis::FunctionID::VehicleInfo_GetMyKey, str::my_key}, + }; +} + +void GetVehicleDataRequest::SendRequestsToHmi(const int32_t app_id) { + smart_objects::SmartObject msg_params(smart_objects::SmartType_Map); + msg_params[strings::app_id] = app_id; + + for (int32_t i = 0; i < sizeof(subrequests) / sizeof(subrequests[0]); ++i) { + const Subrequest& sr = subrequests[i]; + if (true == (*message_)[str::msg_params].keyExists(sr.str) + && true == (*message_)[str::msg_params][sr.str].asBool()) { + HmiRequest hmi_request; + hmi_request.str = sr.str; + hmi_request.func_id = sr.func_id; + hmi_request.complete = false; + hmi_requests_.push_back(hmi_request); + } + } + + LOG4CXX_INFO(logger_, + hmi_requests_.size() << " requests are going to be sent to HMI"); + + for (HmiRequests::const_iterator it = hmi_requests_.begin(); + it != hmi_requests_.end(); ++it) { + SendHMIRequest(it->func_id, &msg_params, true); + } +} + +void GetVehicleDataRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "GetVehicleDataRequest::on_event " << event.id()); + + const smart_objects::SmartObject& message = event.smart_object(); + + for (HmiRequests::iterator it = hmi_requests_.begin(); + it != hmi_requests_.end(); ++it) { + HmiRequest & hmi_request = *it; + if (hmi_request.func_id == event.id()) { + hmi_request.status = + static_cast<hmi_apis::Common_Result::eType>(message[strings::params][hmi_response::code] + .asInt()); + if (hmi_apis::Common_Result::SUCCESS == hmi_request.status) + hmi_request.value = message[str::msg_params][hmi_request.str]; + hmi_request.complete = true; + break; + } + } + + bool all_complete = true; + bool any_arg_success = false; + mobile_api::Result::eType status = mobile_api::Result::eType::SUCCESS; + for (HmiRequests::const_iterator it = hmi_requests_.begin(); + it != hmi_requests_.end(); ++it) { + if (!it->complete) { + all_complete = false; + break; + } + if (hmi_apis::Common_Result::SUCCESS != it->status) { + if (mobile_api::Result::SUCCESS == status) { + status = static_cast<mobile_apis::Result::eType>(it->status); + } else if (status + != static_cast<mobile_apis::Result::eType>(it->status)) { + status = mobile_api::Result::eType::GENERIC_ERROR; + } + LOG4CXX_TRACE(logger_, "Status from HMI: " << it->status << ", so response status become " << status); + } else { + any_arg_success = true; + } + } + + if (all_complete) { + smart_objects::SmartObject response_params(smart_objects::SmartType_Map); + if (any_arg_success) { + for (HmiRequests::const_iterator it = hmi_requests_.begin(); + it != hmi_requests_.end(); ++it) { + response_params[it->str] = it->value; + } + } + LOG4CXX_INFO( + logger_, "All HMI requests are complete"); + const char *info = NULL; + std::string error_message; + if (true == message[strings::params].keyExists(strings::error_msg)) { + error_message = message[strings::params][strings::error_msg].asString(); + info = error_message.c_str(); + } + SendResponse( any_arg_success, status, info, &response_params); + } +} +#endif // #ifdef QT_HMI + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/get_vehicle_data_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/get_vehicle_data_response.cc new file mode 100644 index 000000000..d9087fdc6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/get_vehicle_data_response.cc @@ -0,0 +1,57 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/get_vehicle_data_response.h" +#include "application_manager/application_manager_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +GetVehicleDataResponse::GetVehicleDataResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +GetVehicleDataResponse::~GetVehicleDataResponse() { +} + +void GetVehicleDataResponse::Run() { + LOG4CXX_INFO(logger_, "GetVehicleDataResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/list_files_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/list_files_request.cc new file mode 100644 index 000000000..530fd1c92 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/list_files_request.cc @@ -0,0 +1,90 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/list_files_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "config_profile/profile.h" +#include "application_manager/mobile_command_factory.h" +#include "utils/file_system.h" + +namespace application_manager { + +namespace commands { + +ListFilesRequest::ListFilesRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +ListFilesRequest::~ListFilesRequest() { +} + +void ListFilesRequest::Run() { + LOG4CXX_INFO(logger_, "ListFilesRequest::Run"); + + ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + + if (!application) { + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + LOG4CXX_ERROR(logger_, "Application is not registered"); + return; + } + + if (mobile_api::HMILevel::HMI_NONE == application->hmi_level() && + profile::Profile::instance()->list_files_in_none() <= application->list_files_in_none_count()) { + // If application is in the HMI_NONE level the quantity of allowed + // DeleteFile request is limited by the configuration profile + LOG4CXX_ERROR(logger_, "Too many requests from the app with HMILevel HMI_NONE "); + SendResponse(false, mobile_apis::Result::REJECTED); + return; + } + + application->increment_list_files_in_none_count(); + + (*message_)[strings::msg_params][strings::space_available] = + static_cast<int32_t>(file_system::GetAvailableSpaceForApp(application->name())); + int32_t i = 0; + const AppFilesMap& app_files = application->getAppFiles(); + for (AppFilesMap::const_iterator it = app_files.begin(); + it != app_files.end(); ++it) { + (*message_)[strings::msg_params][strings::filenames][i++] = it->second.file_name; + } + (*message_)[strings::params][strings::message_type] = + application_manager::MessageType::kResponse; + SendResponse(true, mobile_apis::Result::SUCCESS, NULL, &(*message_)[strings::msg_params]); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/list_files_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/list_files_response.cc new file mode 100644 index 000000000..52e8d26e9 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/list_files_response.cc @@ -0,0 +1,56 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/list_files_response.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +namespace commands { + +ListFilesResponse::ListFilesResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +ListFilesResponse::~ListFilesResponse() { +} + +void ListFilesResponse::Run() { + LOG4CXX_INFO(logger_, "ListFilesResponse::Run"); + SendResponse(true); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_app_interface_unregistered_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_app_interface_unregistered_notification.cc new file mode 100644 index 000000000..6063c8cc5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_app_interface_unregistered_notification.cc @@ -0,0 +1,58 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/on_app_interface_unregistered_notification.h" +#include "application_manager/message.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnAppInterfaceUnregisteredNotification::OnAppInterfaceUnregisteredNotification( + const MessageSharedPtr& message) + : CommandNotificationImpl(message) { +} + +OnAppInterfaceUnregisteredNotification::~OnAppInterfaceUnregisteredNotification() { +} + +void OnAppInterfaceUnregisteredNotification::Run() { + LOG4CXX_INFO(logger_, "OnAppInterfaceUnregisteredNotification::Run"); + + SendNotification(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_audio_pass_thru_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_audio_pass_thru_notification.cc new file mode 100644 index 000000000..dd000ca11 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_audio_pass_thru_notification.cc @@ -0,0 +1,56 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/on_audio_pass_thru_notification.h" + +namespace application_manager { + +namespace commands { + +OnAudioPassThruNotification::OnAudioPassThruNotification( + const MessageSharedPtr& message) + : CommandNotificationImpl(message) { +} + +OnAudioPassThruNotification::~OnAudioPassThruNotification() { +} + +void OnAudioPassThruNotification::Run() { + LOG4CXX_INFO(logger_, "OnAudioPassThruNotification::Run"); + + SendNotification(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_button_event_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_button_event_notification.cc new file mode 100644 index 000000000..53fd0cf62 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_button_event_notification.cc @@ -0,0 +1,120 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/on_button_event_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +namespace mobile { + +OnButtonEventNotification::OnButtonEventNotification( + const MessageSharedPtr& message) + : CommandNotificationImpl(message) { +} + +OnButtonEventNotification::~OnButtonEventNotification() { +} + +void OnButtonEventNotification::Run() { + LOG4CXX_INFO(logger_, "OnButtonEventNotification::Run"); + + const uint32_t btn_id = + static_cast<uint32_t>( + (*message_)[strings::msg_params][hmi_response::button_name].asInt()); + + const std::vector<ApplicationSharedPtr>& subscribedApps = + ApplicationManagerImpl::instance()->applications_by_button(btn_id); + + std::vector<ApplicationSharedPtr>::const_iterator it = subscribedApps.begin(); + for (; subscribedApps.end() != it; ++it) { + ApplicationSharedPtr subscribed_app = *it; + if (!subscribed_app) { + LOG4CXX_WARN_EXT(logger_, "Null pointer to subscribed app."); + continue; + } + + if ((mobile_api::HMILevel::HMI_FULL == subscribed_app->hmi_level()) + || (mobile_api::HMILevel::HMI_LIMITED == subscribed_app->hmi_level() + && static_cast<uint32_t>(mobile_apis::ButtonName::OK) != + btn_id)) { + SendButtonEvent(subscribed_app); + } else { + LOG4CXX_WARN_EXT(logger_, "OnButtonEvent in HMI_BACKGROUND or NONE"); + continue; + } + } +} + +void OnButtonEventNotification::SendButtonEvent(ApplicationConstSharedPtr app) { + smart_objects::SmartObject* on_btn_event = new smart_objects::SmartObject(); + + if (!on_btn_event) { + LOG4CXX_ERROR_EXT(logger_, "OnButtonEvent NULL pointer"); + return; + } + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "OnButtonEvent NULL pointer"); + return; + } + + (*on_btn_event)[strings::params][strings::connection_key] = app->app_id(); + + (*on_btn_event)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnButtonEventID); + + (*on_btn_event)[strings::msg_params][strings::button_name] = + (*message_)[strings::msg_params][hmi_response::button_name]; + (*on_btn_event)[strings::msg_params][strings::button_event_mode] = + (*message_)[strings::msg_params][hmi_response::button_mode]; + + if ((*message_)[strings::msg_params].keyExists( + hmi_response::custom_button_id)) { + (*on_btn_event)[strings::msg_params][strings::custom_button_id] = + (*message_)[strings::msg_params][strings::custom_button_id]; + } + + message_.reset(on_btn_event); + SendNotification(); +} + +} // namespace mobile + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_button_press_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_button_press_notification.cc new file mode 100644 index 000000000..64844f011 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_button_press_notification.cc @@ -0,0 +1,120 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/on_button_press_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +namespace mobile { + +OnButtonPressNotification::OnButtonPressNotification( + const MessageSharedPtr& message) + : CommandNotificationImpl(message) { +} + +OnButtonPressNotification::~OnButtonPressNotification() { +} + +void OnButtonPressNotification::Run() { + LOG4CXX_INFO(logger_, "OnButtonPressNotification::Run"); + + const uint32_t btn_id = + static_cast<uint32_t>( + (*message_)[strings::msg_params][hmi_response::button_name].asInt()); + + const std::vector<ApplicationSharedPtr>& subscribedApps = + ApplicationManagerImpl::instance()->applications_by_button(btn_id); + + std::vector<ApplicationSharedPtr>::const_iterator it = subscribedApps.begin(); + for (; subscribedApps.end() != it; ++it) { + ApplicationSharedPtr subscribed_app = *it; + if (!subscribed_app) { + LOG4CXX_WARN_EXT(logger_, "Null pointer to subscribed app."); + continue; + } + + if ((mobile_api::HMILevel::HMI_FULL == subscribed_app->hmi_level()) + || (mobile_api::HMILevel::HMI_LIMITED == subscribed_app->hmi_level() + && static_cast<uint32_t>(mobile_apis::ButtonName::OK) != + btn_id)) { + SendButtonPress(subscribed_app); + } else { + LOG4CXX_WARN_EXT(logger_, "OnButtonEvent in HMI_BACKGROUND or NONE"); + continue; + } + } +} + +void OnButtonPressNotification::SendButtonPress(ApplicationConstSharedPtr app) { + smart_objects::SmartObject* on_btn_press = new smart_objects::SmartObject(); + + if (!on_btn_press) { + LOG4CXX_ERROR_EXT(logger_, "OnButtonPress NULL pointer"); + return; + } + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "OnButtonPress NULL pointer"); + return; + } + + (*on_btn_press)[strings::params][strings::connection_key] = app->app_id(); + + (*on_btn_press)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnButtonPressID); + + (*on_btn_press)[strings::msg_params][strings::button_name] = + (*message_)[strings::msg_params][hmi_response::button_name]; + (*on_btn_press)[strings::msg_params][strings::button_press_mode] = + (*message_)[strings::msg_params][hmi_response::button_mode]; + + if ((*message_)[strings::msg_params].keyExists( + hmi_response::custom_button_id)) { + (*on_btn_press)[strings::msg_params][strings::custom_button_id] = + (*message_)[strings::msg_params][strings::custom_button_id]; + } + + message_.reset(on_btn_press); + SendNotification(); +} + +} // namespace mobile + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_command_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_command_notification.cc new file mode 100644 index 000000000..34f5d8ed4 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_command_notification.cc @@ -0,0 +1,76 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/on_command_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +namespace commands { + +OnCommandNotification::OnCommandNotification(const MessageSharedPtr& message) + : CommandNotificationImpl(message) { +} + +OnCommandNotification::~OnCommandNotification() { +} + +void OnCommandNotification::Run() { + LOG4CXX_INFO(logger_, "OnCommandNotification::Run"); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + (*message_)[strings::msg_params][strings::app_id].asInt()); + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "No application associated with session key"); + return; + } + + const uint32_t cmd_id = (*message_)[strings::msg_params][strings::cmd_id] + .asUInt(); + + if (!app->FindCommand(cmd_id)) { + LOG4CXX_ERROR_EXT(logger_, + " No applications found for the command " << cmd_id); + return; + } + + (*message_)[strings::params][strings::connection_key] = app->app_id(); + + SendNotification(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_driver_distraction_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_driver_distraction_notification.cc new file mode 100644 index 000000000..2f836a088 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_driver_distraction_notification.cc @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/on_driver_distraction_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +namespace mobile { + +OnDriverDistractionNotification::OnDriverDistractionNotification( + const MessageSharedPtr& message) + : CommandNotificationImpl(message) { +} + +OnDriverDistractionNotification::~OnDriverDistractionNotification() { +} + +void OnDriverDistractionNotification::Run() { + LOG4CXX_INFO(logger_, "OnDriverDistractionNotification::Run"); + + const std::set<ApplicationSharedPtr>& applications = + ApplicationManagerImpl::instance()->applications(); + + std::set<ApplicationSharedPtr>::iterator it = applications.begin(); + for (; applications.end() != it; ++it) { + ApplicationSharedPtr app = *it; + if (mobile_apis::HMILevel::eType::HMI_NONE != app->hmi_level()) { + (*message_)[strings::params][strings::connection_key] = app->app_id(); + SendNotification(); + } + } +} + +} // namespace mobile + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_encoded_sync_pdata_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_encoded_sync_pdata_notification.cc new file mode 100644 index 000000000..f22f9de3b --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_encoded_sync_pdata_notification.cc @@ -0,0 +1,105 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include <string> +#include <vector> +#include "application_manager/commands/mobile/on_encoded_sync_pdata_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" +#include "utils/file_system.h" +#include "encryption/Base64.h" + +namespace application_manager { + +namespace commands { + +OnEncodedSyncPDataNotification::OnEncodedSyncPDataNotification( + const MessageSharedPtr& message) + : CommandResponseImpl(message), + timer_(this, &OnEncodedSyncPDataNotification::onTimer) { +} + +OnEncodedSyncPDataNotification::~OnEncodedSyncPDataNotification() { +} + +void OnEncodedSyncPDataNotification::Run() { + LOG4CXX_INFO(logger_, "OnEncodedSyncPDataNotification::Run"); + + const std::string fileName = + (*message_)[strings::params][hmi_notification::file_name].asString(); + + if (!file_system::FileExists(fileName)) { + (*message_)[strings::msg_params][strings::success] = false; + (*message_)[strings::msg_params][strings::result_code] = + static_cast<int32_t>(mobile_apis::Result::FILE_NOT_FOUND); + + SendResponse(false); + LOG4CXX_ERROR(logger_, "File not found"); + return; + } + + const char* timeout = mobile_notification::syncp_timeout; + if ((*message_)[strings::msg_params].keyExists(timeout)) { + ApplicationManagerImpl::instance()->addNotification(this); + timer_.start((*message_)[strings::msg_params][timeout].asInt()); + } else { + SendEncodedPData(); + } +} + +void OnEncodedSyncPDataNotification::onTimer() { + LOG4CXX_INFO(logger_, "OnEncodedSyncPDataNotification::onTimer"); + + SendEncodedPData(); +} + +void OnEncodedSyncPDataNotification::SendEncodedPData() { + const std::string fileName = + (*message_)[strings::params][hmi_notification::file_name].asString(); + + std::vector<uint8_t> pData; + file_system::ReadBinaryFile(fileName, pData); + const std::string string_pdata = base64_decode( + std::string(pData.begin(), pData.end())); + + (*message_)[strings::params][strings::data] = string_pdata; + + SendResponse(true); + ApplicationManagerImpl::instance()->removeNotification(this); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_hash_change_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_hash_change_notification.cc new file mode 100644 index 000000000..1f30231bc --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_hash_change_notification.cc @@ -0,0 +1,74 @@ + +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/on_hash_change_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" +#include <string> + +namespace application_manager { + +namespace commands { + +namespace mobile { + +OnHashChangeNotification::OnHashChangeNotification( + const MessageSharedPtr& message) + : CommandNotificationImpl(message) { +} + +OnHashChangeNotification::~OnHashChangeNotification() { +} + +void OnHashChangeNotification::Run() { + LOG4CXX_INFO(logger_, "OnHashChangeNotification::Run"); + + (*message_)[strings::params][strings::message_type] = + static_cast<int32_t>(application_manager::MessageType::kNotification); + + int32_t app_id; + app_id = (*message_)[strings::params][strings::connection_key].asInt(); + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + std::stringstream stream; + stream << app->curHash(); + (*message_)[strings::msg_params][strings::hash_id] = stream.str(); + SendNotification(); +} + +} //namespace mobile + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_hmi_status_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_hmi_status_notification.cc new file mode 100644 index 000000000..4208d6b35 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_hmi_status_notification.cc @@ -0,0 +1,60 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/on_hmi_status_notification.h" +#include "application_manager/message.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnHMIStatusNotification::OnHMIStatusNotification( + const MessageSharedPtr& message) + : CommandNotificationImpl(message) { +} + +OnHMIStatusNotification::~OnHMIStatusNotification() { +} + +void OnHMIStatusNotification::Run() { + LOG4CXX_INFO(logger_, "OnHMIStatusNotification::Run"); + + (*message_)[strings::params][strings::message_type] = static_cast<int32_t> ( + application_manager::MessageType::kNotification); + SendNotification(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_keyboard_input_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_keyboard_input_notification.cc new file mode 100644 index 000000000..969885ab1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_keyboard_input_notification.cc @@ -0,0 +1,73 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/on_keyboard_input_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +namespace mobile { + +OnKeyBoardInputNotification::OnKeyBoardInputNotification( + const MessageSharedPtr& message) + : CommandNotificationImpl(message) { +} + +OnKeyBoardInputNotification::~OnKeyBoardInputNotification() { +} + +void OnKeyBoardInputNotification::Run() { + LOG4CXX_INFO(logger_, "OnKeyBoardInputNotification::Run"); + + const std::vector<ApplicationSharedPtr>& applications = + ApplicationManagerImpl::instance()->applications_with_navi(); + + std::vector<ApplicationSharedPtr>::const_iterator it = applications.begin(); + for (; applications.end() != it; ++it) { + ApplicationSharedPtr app = *it; + if (mobile_apis::HMILevel::eType::HMI_NONE != app->hmi_level()) { + (*message_)[strings::params][strings::connection_key] = app->app_id(); + SendNotification(); + } + } +} + +} // namespace mobile + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_language_change_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_language_change_notification.cc new file mode 100644 index 000000000..f550df874 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_language_change_notification.cc @@ -0,0 +1,56 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/on_language_change_notification.h" + +namespace application_manager { + +namespace commands { + +OnLanguageChangeNotification::OnLanguageChangeNotification( + const MessageSharedPtr& message) + : CommandNotificationImpl(message) { +} + +OnLanguageChangeNotification::~OnLanguageChangeNotification() { +} + +void OnLanguageChangeNotification::Run() { + LOG4CXX_INFO(logger_, "OnLanguageChangeNotification::Run"); + + SendNotification(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_permissions_change_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_permissions_change_notification.cc new file mode 100644 index 000000000..37c81085e --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_permissions_change_notification.cc @@ -0,0 +1,61 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/on_permissions_change_notification.h" +#include "application_manager/message.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnPermissionsChangeNotification::OnPermissionsChangeNotification( + const MessageSharedPtr& message) + : CommandNotificationImpl(message) { +} + +OnPermissionsChangeNotification::~OnPermissionsChangeNotification() { +} + +void OnPermissionsChangeNotification::Run() { + LOG4CXX_INFO(logger_, "OnPermissionsChangeNotification::Run"); + + (*message_)[strings::params][strings::message_type] = + static_cast<int32_t>(application_manager::MessageType::kNotification); + + SendNotification(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_sync_pdata_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_sync_pdata_notification.cc new file mode 100644 index 000000000..bbfa3e576 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_sync_pdata_notification.cc @@ -0,0 +1,105 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include <string> +#include <vector> +#include "application_manager/commands/mobile/on_sync_pdata_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" +#include "utils/file_system.h" +#include "encryption/Base64.h" + +namespace application_manager { + +namespace commands { + +OnSyncPDataNotification::OnSyncPDataNotification( + const MessageSharedPtr& message) + : CommandResponseImpl(message), + timer_(this, &OnSyncPDataNotification::onTimer) { +} + +OnSyncPDataNotification::~OnSyncPDataNotification() { +} + +void OnSyncPDataNotification::Run() { + LOG4CXX_INFO(logger_, "OnSyncPDataNotification::Run"); + + const std::string fileName = + (*message_)[strings::params][hmi_notification::file_name].asString(); + + if (!file_system::FileExists(fileName)) { + (*message_)[strings::msg_params][strings::success] = false; + (*message_)[strings::msg_params][strings::result_code] = + static_cast<int32_t>(mobile_apis::Result::FILE_NOT_FOUND); + + LOG4CXX_ERROR(logger_, "File not found"); + SendResponse(false); + return; + } + + const char* timeout = mobile_notification::syncp_timeout; + if ((*message_)[strings::msg_params].keyExists(timeout)) { + ApplicationManagerImpl::instance()->addNotification(this); + timer_.start((*message_)[strings::msg_params][timeout].asInt()); + } else { + SendPData(); + } +} + +void OnSyncPDataNotification::onTimer() { + LOG4CXX_INFO(logger_, "OnSyncPDataNotification::onTimer"); + + SendPData(); +} + +void OnSyncPDataNotification::SendPData() { + LOG4CXX_INFO(logger_, "OnSyncPDataNotification::SendPData"); + + const std::string fileName = + (*message_)[strings::params][hmi_notification::file_name].asString(); + + std::vector<uint8_t> pData; + file_system::ReadBinaryFile(fileName, pData); + const std::string string_pdata = std::string(pData.begin(), pData.end()); + (*message_)[strings::params][strings::data] = string_pdata; + + SendResponse(true); + ApplicationManagerImpl::instance()->removeNotification(this); +} + +} // namespace commands + +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_system_request_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_system_request_notification.cc new file mode 100644 index 000000000..a40f1c1b1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_system_request_notification.cc @@ -0,0 +1,60 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/on_system_request_notification.h" + +namespace application_manager { + +namespace commands { + +namespace mobile { + +OnSystemRequestNotification::OnSystemRequestNotification( + const MessageSharedPtr& message) + : CommandNotificationImpl(message) { +} + +OnSystemRequestNotification::~OnSystemRequestNotification() { +} + +void OnSystemRequestNotification::Run() { + LOG4CXX_INFO(logger_, "OnSystemRequestNotification::Run"); + + SendNotification(); +} + +} //namespace mobile + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_tbt_client_state_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_tbt_client_state_notification.cc new file mode 100644 index 000000000..05494c614 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_tbt_client_state_notification.cc @@ -0,0 +1,72 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/on_tbt_client_state_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnTBTClientStateNotification::OnTBTClientStateNotification( + const MessageSharedPtr& message) + : CommandNotificationImpl(message) { +} + +OnTBTClientStateNotification::~OnTBTClientStateNotification() { +} + +void OnTBTClientStateNotification::Run() { + LOG4CXX_INFO(logger_, "OnTBTClientStateNotification::Run"); + + (*message_)[strings::params][strings::message_type] = + static_cast<int32_t>(application_manager::MessageType::kNotification); + + const std::vector<ApplicationSharedPtr>& applications = + ApplicationManagerImpl::instance()->applications_with_navi(); + + std::vector<ApplicationSharedPtr>::const_iterator it = applications.begin(); + for (; applications.end() != it; ++it) { + ApplicationSharedPtr app = *it; + if (mobile_apis::HMILevel::eType::HMI_NONE != app->hmi_level()) { + (*message_)[strings::params][strings::connection_key] = app->app_id(); + SendNotification(); + } + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_touch_event_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_touch_event_notification.cc new file mode 100644 index 000000000..dd2431bb6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_touch_event_notification.cc @@ -0,0 +1,72 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/on_touch_event_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +namespace commands { + +namespace mobile { + +OnTouchEventNotification::OnTouchEventNotification( + const MessageSharedPtr& message) + : CommandNotificationImpl(message) { +} + +OnTouchEventNotification::~OnTouchEventNotification() { +} + +void OnTouchEventNotification::Run() { + LOG4CXX_INFO(logger_, "OnTouchEventNotification::Run"); + + const std::vector<ApplicationSharedPtr>& applications = + ApplicationManagerImpl::instance()->applications_with_navi(); + + std::vector<ApplicationSharedPtr>::const_iterator it = applications.begin(); + for (; applications.end() != it; ++it) { + ApplicationSharedPtr app = *it; + if (mobile_apis::HMILevel::eType::HMI_NONE != app->hmi_level()) { + (*message_)[strings::params][strings::connection_key] = app->app_id(); + SendNotification(); + } + } +} + +} // namespace mobile + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_vehicle_data_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_vehicle_data_notification.cc new file mode 100644 index 000000000..46ed25cb1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_vehicle_data_notification.cc @@ -0,0 +1,88 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/on_vehicle_data_notification.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +OnVehicleDataNotification::OnVehicleDataNotification( + const MessageSharedPtr& message) + : CommandNotificationImpl(message) { +} + +OnVehicleDataNotification::~OnVehicleDataNotification() { +} + +void OnVehicleDataNotification::Run() { + LOG4CXX_INFO(logger_, "OnVehicleDataNotification::Run"); + + const VehicleData& vehicle_data = MessageHelper::vehicle_data(); + VehicleData::const_iterator it = vehicle_data.begin(); + + for (; vehicle_data.end() != it; ++it) { + if (true == (*message_)[strings::msg_params].keyExists(it->first)) { + const std::vector<ApplicationSharedPtr>& applications = + ApplicationManagerImpl::instance()->applications_by_ivi((static_cast<uint32_t>(it->second))); + + std::vector<ApplicationSharedPtr>::const_iterator it = applications.begin(); + for (; applications.end() != it; ++it) { + ApplicationSharedPtr app = *it; + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "NULL pointer"); + continue; + } + + LOG4CXX_INFO( + logger_, + "Send OnVehicleData PRNDL notification to " << app->name() + << " application id " << app->app_id()); + + (*message_)[strings::params][strings::connection_key] = app->app_id(); + + SendNotification(); + } + + return; + } + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc new file mode 100644 index 000000000..07ce5cf15 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc @@ -0,0 +1,193 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/perform_audio_pass_thru_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" + +namespace application_manager { + +namespace commands { + +namespace str = strings; + +PerformAudioPassThruRequest::PerformAudioPassThruRequest( + const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +PerformAudioPassThruRequest::~PerformAudioPassThruRequest() { +} + +bool PerformAudioPassThruRequest::Init() { + default_timeout_ += (*message_)[str::msg_params][str::max_duration].asInt(); + return true; +} + +void PerformAudioPassThruRequest::Run() { + LOG4CXX_INFO(logger_, "PerformAudioPassThruRequest::Run"); + + if (ApplicationManagerImpl::instance()->begin_audio_pass_thru() == false) { + // Audio pass thru already active + LOG4CXX_ERROR_EXT(logger_, "REJECTED"); + SendResponse(false, mobile_apis::Result::REJECTED); + return; + } + + uint32_t app_id = (*message_)[strings::params][strings::connection_key] + .asUInt(); + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "APPLICATION_NOT_REGISTERED"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + if (mobile_api::HMILevel::HMI_NONE == app->hmi_level()) { + LOG4CXX_ERROR_EXT(logger_, "application isn't activated"); + SendResponse(false, mobile_apis::Result::REJECTED); + return; + } + + SendSpeakRequest(app->app_id()); + + // create HMI request + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + msg_params[str::app_id] = app_id; + + msg_params[hmi_request::audio_pass_display_texts] = + smart_objects::SmartObject(smart_objects::SmartType_Array); + + if ((*message_)[str::msg_params].keyExists(str::audio_pass_display_text1)) { + msg_params[hmi_request::audio_pass_display_texts] + [0][hmi_request::field_name] = static_cast<int32_t> + (application_manager::TextFieldName::AUDIO_DISPLAY_TEXT1); + msg_params[hmi_request::audio_pass_display_texts] + [0][hmi_request::field_text] = + (*message_)[str::msg_params][str::audio_pass_display_text1]; + } + + if ((*message_)[str::msg_params].keyExists(str::audio_pass_display_text2)) { + msg_params[hmi_request::audio_pass_display_texts] + [1][hmi_request::field_name] = static_cast<int32_t> + (application_manager::TextFieldName::AUDIO_DISPLAY_TEXT2); + msg_params[hmi_request::audio_pass_display_texts] + [1][hmi_request::field_text] = + (*message_)[str::msg_params][str::audio_pass_display_text2]; + } + + // duration + msg_params[hmi_request::max_duration] = + (*message_)[str::msg_params][str::max_duration]; + + msg_params[strings::app_id] = app->app_id(); + + SendHMIRequest(hmi_apis::FunctionID::UI_PerformAudioPassThru, + &msg_params, true); + + ApplicationManagerImpl::instance()->StartAudioPassThruThread( + (*message_)[str::params][str::connection_key].asInt(), + (*message_)[str::params][str::correlation_id].asInt(), + (*message_)[str::msg_params][str::max_duration].asInt(), + (*message_)[str::msg_params][str::sampling_rate].asInt(), + (*message_)[str::msg_params][str::bits_per_sample].asInt(), + (*message_)[str::msg_params][str::audio_type].asInt()); +} + +void PerformAudioPassThruRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "PerformAudioPassThruRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::UI_PerformAudioPassThru: { + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + bool result = mobile_apis::Result::SUCCESS == result_code || + mobile_apis::Result::RETRY == result_code; + + if (ApplicationManagerImpl::instance()->end_audio_pass_thru()) { + int32_t session_key = + (*message_)[strings::params][strings::connection_key].asUInt(); + ApplicationManagerImpl::instance()->StopAudioPassThru(session_key); + } + + const char* return_info = NULL; + + if (result) { + if (hmi_apis::Common_Result::UNSUPPORTED_RESOURCE == + static_cast<hmi_apis::Common_Result::eType>(result_code)) { + result_code = mobile_apis::Result::WARNINGS; + return_info = std::string("Unsupported phoneme type sent in a prompt").c_str(); + } + } + + SendResponse(result, result_code, return_info, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + return; + } + } +} + +void PerformAudioPassThruRequest::SendSpeakRequest(const int32_t app_id) { + // crate HMI TTS speak request + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + + if ((*message_)[str::msg_params].keyExists(str::initial_prompt) && + (0 < (*message_)[str::msg_params][str::initial_prompt].length())) { + for (int32_t i = 0; + i < (*message_)[str::msg_params][str::initial_prompt].length(); + ++i) { + msg_params[hmi_request::tts_chunks][i][str::text] = + (*message_)[str::msg_params][str::initial_prompt][i][str::text]; + } + // app_id + msg_params[strings::app_id] = app_id; + + SendHMIRequest(hmi_apis::FunctionID::TTS_Speak, &msg_params); + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_response.cc new file mode 100644 index 000000000..a10eaac9f --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_response.cc @@ -0,0 +1,58 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/perform_audio_pass_thru_response.h" +#include "application_manager/application_manager_impl.h" + + +namespace application_manager { + +namespace commands { + +PerformAudioPassThruResponse::PerformAudioPassThruResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +PerformAudioPassThruResponse::~PerformAudioPassThruResponse() { +} + +void PerformAudioPassThruResponse::Run() { + LOG4CXX_INFO(logger_, "PerformAudioPassThruResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/perform_interaction_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_interaction_request.cc new file mode 100644 index 000000000..e46161d24 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_interaction_request.cc @@ -0,0 +1,763 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include <string.h> +#include <string> +#include "application_manager/commands/mobile/perform_interaction_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" +#include "config_profile/profile.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" +#include "utils/file_system.h" + +namespace application_manager { + +namespace commands { + +PerformInteractionRequest::PerformInteractionRequest( + const MessageSharedPtr& message) +: CommandRequestImpl(message), + timer_(this, &PerformInteractionRequest::onTimer), + tts_perform_interaction_code_(mobile_apis::Result::INVALID_ENUM) { + + subscribe_on_event(hmi_apis::FunctionID::UI_OnResetTimeout); + subscribe_on_event(hmi_apis::FunctionID::VR_OnCommand); + subscribe_on_event(hmi_apis::FunctionID::Buttons_OnButtonPress); + subscribe_on_event( + hmi_apis::FunctionID::BasicCommunication_OnAppUnregistered); +} + +PerformInteractionRequest::~PerformInteractionRequest() { +} + +void PerformInteractionRequest::onTimer() { + LOG4CXX_INFO(logger_, "PerformInteractionRequest::onTimer"); +} + +bool PerformInteractionRequest::Init() { + + /* Timeout in milliseconds. + If omitted a standard value of 10000 milliseconds is used.*/ + if ((*message_)[strings::msg_params].keyExists(strings::timeout)) { + default_timeout_ = + (*message_)[strings::msg_params][strings::timeout].asUInt(); + } + mobile_apis::InteractionMode::eType mode = + static_cast<mobile_apis::InteractionMode::eType>( + (*message_)[strings::msg_params][strings::interaction_mode].asInt()); + + if (mobile_apis::InteractionMode::BOTH == mode || + mobile_apis::InteractionMode::MANUAL_ONLY == mode) { + default_timeout_ *= 2; + } + return true; +} + +void PerformInteractionRequest::Run() { + LOG4CXX_INFO(logger_, "PerformInteractionRequest::Run"); + + // timer_.start(2); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + + if (!app) { + LOG4CXX_ERROR(logger_, "Application is not registered"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + if (0 != app->is_perform_interaction_active()) { + LOG4CXX_INFO(logger_, "Another perform interaction is running!"); + SendResponse(false, mobile_apis::Result::REJECTED); + return; + } + + mobile_apis::Result::eType verification_result = + MessageHelper::VerifyImageFiles((*message_)[strings::msg_params], app); + + if ((mobile_apis::Result::SUCCESS != verification_result) && + (mobile_apis::Result::UNSUPPORTED_RESOURCE != verification_result)) { + LOG4CXX_ERROR_EXT( + logger_, + "MessageHelper::VerifyImageFiles return " << verification_result); + SendResponse(false, verification_result); + return; + } + + smart_objects::SmartObject& choice_list = + (*message_)[strings::msg_params][strings::interaction_choice_set_id_list]; + + for (size_t i = 0; i < choice_list.length(); ++i) { + if (!app->FindChoiceSet(choice_list[i].asInt())) { + LOG4CXX_ERROR(logger_, "Invalid ID"); + SendResponse(false, mobile_apis::Result::INVALID_ID); + return; + } + } + + uint32_t correlation_id = + (*message_)[strings::params][strings::correlation_id].asUInt(); + + int32_t mode = + (*message_)[strings::msg_params][strings::interaction_mode].asInt(); + + app->set_perform_interaction_mode(mode); + + mobile_apis::InteractionMode::eType interaction_mode = + static_cast<mobile_apis::InteractionMode::eType>(mode); + + switch (interaction_mode) { + case mobile_apis::InteractionMode::BOTH: { + LOG4CXX_INFO(logger_, "Interaction Mode: BOTH"); + if (!CheckChoiceSetVRSynonyms(app)) { + return; + } + + if (!CheckChoiceSetMenuNames(app)) { + return; + } + + if (!CheckVrHelpItemPositions(app)) { + return; + } + + app->set_perform_interaction_active(correlation_id); + SendVRAddCommandRequest(app); + SendTTSPerformInteractionRequest(app); + SendUIPerformInteractionRequest(app); + break; + } + case mobile_apis::InteractionMode::MANUAL_ONLY: { + LOG4CXX_INFO(logger_, "Interaction Mode: MANUAL_ONLY"); + if (!CheckChoiceSetMenuNames(app)) { + return; + } + + app->set_perform_interaction_active(correlation_id); + SendTTSPerformInteractionRequest(app); + SendUIPerformInteractionRequest(app); + break; + } + case mobile_apis::InteractionMode::VR_ONLY: { + LOG4CXX_INFO(logger_, "Interaction Mode: VR_ONLY"); + if (!CheckChoiceSetVRSynonyms(app)) { + return; + } + + if (!CheckVrHelpItemPositions(app)) { + return; + } + + // TODO(DK): need to implement timeout + app->set_perform_interaction_active(correlation_id); + SendVRAddCommandRequest(app); + SendTTSPerformInteractionRequest(app); + SendUIPerformInteractionRequest(app); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Unknown interaction mode"); + return; + } + } + + // TODO(DK): need to implement timeout TTS speak request. +} + +void PerformInteractionRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "PerformInteractionRequest::on_event"); + + switch (event.id()) { + case hmi_apis::FunctionID::UI_OnResetTimeout: { + LOG4CXX_INFO(logger_, "Received UI_OnResetTimeout event"); + ApplicationManagerImpl::instance()->updateRequestTimeout(connection_key(), + correlation_id(), + default_timeout()); + break; + } + case hmi_apis::FunctionID::VR_OnCommand: { + LOG4CXX_INFO(logger_, "Received VR_OnCommand event"); + ProcessVRNotification(event.smart_object()); + break; + } + case hmi_apis::FunctionID::UI_PerformInteraction: { + LOG4CXX_INFO(logger_, "Received UI_PerformInteraction event"); + ProcessPerformInteractionResponse(event.smart_object()); + break; + } + case hmi_apis::FunctionID::BasicCommunication_OnAppUnregistered: { + LOG4CXX_INFO(logger_, "Received OnAppUnregistered event"); + ProcessAppUnregisteredNotification(event.smart_object()); + break; + } + case hmi_apis::FunctionID::TTS_PerformInteraction: { + LOG4CXX_INFO(logger_, "Received TTS_PerformInteraction"); + tts_perform_interaction_code_ = static_cast<mobile_apis::Result::eType>( + event.smart_object()[strings::params][hmi_response::code].asInt()); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + break; + } + } +} + +void PerformInteractionRequest::onTimeOut() { + LOG4CXX_INFO(logger_, "PerformInteractionRequest::onTimeOut"); + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + if (app) { + + // Unsubscribe from event on UIPerformInteractionResponse to + // avoid of double execution of SendVrDeleteCommand() + unsubscribe_from_event(hmi_apis::FunctionID::UI_PerformInteraction); + SendVrDeleteCommand(app); + app->set_perform_interaction_active(0); + app->set_perform_interaction_mode(-1); + app->DeletePerformInteractionChoiceSetMap(); + } + CommandRequestImpl::onTimeOut(); +} + +void PerformInteractionRequest::ProcessVRNotification( + const smart_objects::SmartObject& message) { + LOG4CXX_INFO(logger_, "PerformInteractionRequest::ProcessVRNotification"); + const uint32_t app_id = message[strings::msg_params][strings::app_id] + .asUInt(); + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + if (!app) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + return; + } + int32_t cmd_id = message[strings::msg_params][strings::cmd_id].asInt(); + const PerformChoiceSetMap& choice_set_map = app + ->performinteraction_choice_set_map(); + bool choice_id_chosen = false; + LOG4CXX_INFO(logger_, "If command was choice id"); + for (PerformChoiceSetMap::const_iterator it = choice_set_map.begin(); + choice_set_map.end() != it; ++it) { + const smart_objects::SmartObject& choice_set = (*it->second).getElement( + strings::choice_set); + for (size_t j = 0; j < choice_set.length(); ++j) { + if (cmd_id == + choice_set.getElement(j).getElement(strings::choice_id).asInt()) { + choice_id_chosen = true; + break; + } + } + } + if (choice_id_chosen) { + LOG4CXX_INFO(logger_, "Command was choice id!"); + smart_objects::SmartObject c_p_request_so = smart_objects::SmartObject( + smart_objects::SmartType_Map); + c_p_request_so[hmi_request::method_name] = "UI.PerformInteraction"; + SendHMIRequest(hmi_apis::FunctionID::UI_ClosePopUp, &(c_p_request_so)); + SendVrDeleteCommand(app); + app->set_perform_interaction_mode(-1); + app->DeletePerformInteractionChoiceSetMap(); + app->set_perform_interaction_active(0); + + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::PerformInteractionID); + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::choice_id] = cmd_id; + msg_params[strings::trigger_source] = + static_cast<int32_t>(mobile_apis::TriggerSource::TS_VR); + SendResponse(true, mobile_apis::Result::SUCCESS, NULL, &(msg_params)); + + } else { + LOG4CXX_INFO(logger_, "Sending OnCommand notification"); + smart_objects::SmartObject* notification_so = + new smart_objects::SmartObject(smart_objects::SmartType_Map); + if (!notification_so) { + LOG4CXX_ERROR( + logger_, + "Failed to allocate memory for perform interaction response."); + return; + } + smart_objects::SmartObject& notification = *notification_so; + notification = message; + notification[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::eType::OnCommandID); + notification[strings::msg_params][strings::trigger_source] = + static_cast<int32_t>(mobile_apis::TriggerSource::TS_VR); + ApplicationManagerImpl::instance()->ManageMobileCommand(notification_so); + } +} + +void PerformInteractionRequest::ProcessAppUnregisteredNotification + (const smart_objects::SmartObject& message) { + LOG4CXX_INFO(logger_, + "PerformInteractionRequest::ProcessAppUnregisteredNotification"); + const uint32_t app_id = (*message_)[strings::params] + [strings::connection_key].asUInt(); + if (app_id == message[strings::msg_params][strings::app_id].asUInt()) { + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + if (!app) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + return; + } + if (app->is_perform_interaction_active()) { + if (static_cast<int32_t>(mobile_apis::InteractionMode::MANUAL_ONLY) != + app->perform_interaction_mode()) { + SendVrDeleteCommand(app); + } + app->set_perform_interaction_mode(-1); + app->DeletePerformInteractionChoiceSetMap(); + app->set_perform_interaction_active(0); + } + } else { + LOG4CXX_INFO(logger_, "Notification was sent from another application"); + } +} + +void PerformInteractionRequest::SendVrDeleteCommand( + application_manager::ApplicationSharedPtr const app) { + LOG4CXX_INFO(logger_, "PerformInteractionRequest::SendVrDeleteCommand"); + const PerformChoiceSetMap& choice_set_map = app + ->performinteraction_choice_set_map(); + PerformChoiceSetMap::const_iterator it = choice_set_map.begin(); + for (; choice_set_map.end() != it; ++it) { + const smart_objects::SmartObject& choice_set = (*it->second).getElement( + strings::choice_set); + for (size_t j = 0; j < choice_set.length(); ++j) { + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::app_id] = app->app_id(); + msg_params[strings::cmd_id] = choice_set.getElement(j).getElement( + strings::choice_id); + SendHMIRequest(hmi_apis::FunctionID::VR_DeleteCommand, &msg_params); + } + } +} + +void PerformInteractionRequest::ProcessPerformInteractionResponse( + const smart_objects::SmartObject& message) { + LOG4CXX_INFO(logger_, + "PerformInteractionRequest::ProcessPerformInteractionResponse"); + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + if (!app) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + return; + } + if (app->is_perform_interaction_active()) { + if (static_cast<int32_t>(mobile_apis::InteractionMode::MANUAL_ONLY) + != app->perform_interaction_mode()) { + SendVrDeleteCommand(app); + } + app->set_perform_interaction_mode(-1); + app->DeletePerformInteractionChoiceSetMap(); + app->set_perform_interaction_active(0); + } + (*message_)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::PerformInteractionID); + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params = message[strings::msg_params]; + bool result = false; + int32_t hmi_response_code = + message[strings::params][hmi_response::code].asInt(); + if (hmi_apis::Common_Result::SUCCESS == + hmi_apis::Common_Result::eType(hmi_response_code)) { + if (message[strings::msg_params].keyExists(strings::manual_text_entry)) { + msg_params[strings::trigger_source] = mobile_apis::TriggerSource::TS_KEYBOARD; + } else { + msg_params[strings::trigger_source] = mobile_apis::TriggerSource::TS_MENU; + } + result = true; + } + + const char* return_info = NULL; + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>(hmi_response_code); + if (result) { + if (hmi_apis::Common_Result::UNSUPPORTED_RESOURCE == + hmi_apis::Common_Result::eType(hmi_response_code)) { + result_code = mobile_apis::Result::WARNINGS; + return_info = std::string( + "Unsupported phoneme type sent in any item").c_str(); + } + } + + SendResponse(result, + result_code, + return_info, + &(msg_params)); +} + +void PerformInteractionRequest::SendVRAddCommandRequest( + application_manager::ApplicationSharedPtr const app) { + smart_objects::SmartObject& choice_list = + (*message_)[strings::msg_params][strings::interaction_choice_set_id_list]; + + mobile_apis::InteractionMode::eType mode = + static_cast<mobile_apis::InteractionMode::eType>( + (*message_)[strings::msg_params][strings::interaction_mode].asInt()); + + if (mobile_apis::InteractionMode::VR_ONLY == mode) { + // TODO(DK): We need subscribe perform interaction with on command + // notification + /*CreateHMIRequest(hmi_apis::FunctionID::UI_PerformInteraction, + smart_objects::SmartObject(smart_objects::SmartType_Map), true, 1);*/ + } + + for (size_t i = 0; i < choice_list.length(); ++i) { + smart_objects::SmartObject* choice_set = app->FindChoiceSet( + choice_list[i].asInt()); + + if (choice_set) { + for (size_t j = 0; j < (*choice_set)[strings::choice_set].length(); ++j) { + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::app_id] = app->app_id(); + msg_params[strings::cmd_id] = + (*choice_set)[strings::choice_set][j][strings::choice_id]; + msg_params[strings::vr_commands] = smart_objects::SmartObject( + smart_objects::SmartType_Array); + msg_params[strings::vr_commands] = + (*choice_set)[strings::choice_set][j][strings::vr_commands]; + SendHMIRequest(hmi_apis::FunctionID::VR_AddCommand, &msg_params); + } + } + } +} + +void PerformInteractionRequest::SendUIPerformInteractionRequest( + application_manager::ApplicationSharedPtr const app) { + smart_objects::SmartObject& choice_set_id_list = + (*message_)[strings::msg_params][strings::interaction_choice_set_id_list]; + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + mobile_apis::InteractionMode::eType mode = + static_cast<mobile_apis::InteractionMode::eType>( + (*message_)[strings::msg_params][strings::interaction_mode].asInt()); + + if (mobile_apis::InteractionMode::VR_ONLY != mode) { + msg_params[hmi_request::initial_text][hmi_request::field_name] = + static_cast<int32_t>(application_manager::TextFieldName:: + INITIAL_INTERACTION_TEXT); + msg_params[hmi_request::initial_text][hmi_request::field_text] = + (*message_)[strings::msg_params][hmi_request::initial_text]; + } + bool is_vr_help_item = false; + if (mobile_apis::InteractionMode::MANUAL_ONLY != mode) { + msg_params[strings::vr_help_title] = + (*message_)[strings::msg_params][strings::initial_text].asString(); + if ((*message_)[strings::msg_params].keyExists(strings::vr_help)) { + is_vr_help_item = true; + msg_params[strings::vr_help] = + (*message_)[strings::msg_params][strings::vr_help]; + } + } + + if (mobile_apis::InteractionMode::BOTH == mode || + mobile_apis::InteractionMode::MANUAL_ONLY == mode) { + msg_params[strings::timeout] = default_timeout_/2; + } else { + msg_params[strings::timeout] = default_timeout_; + } + msg_params[strings::app_id] = app->app_id(); + if (mobile_apis::InteractionMode::VR_ONLY != mode) { + msg_params[strings::choice_set] = smart_objects::SmartObject( + smart_objects::SmartType_Array); + } + int32_t index_array_of_vr_help = 0; + for (size_t i = 0; i < choice_set_id_list.length(); ++i) { + smart_objects::SmartObject* choice_set = app->FindChoiceSet( + choice_set_id_list[i].asInt()); + if (choice_set) { + // save perform interaction choice set + app->AddPerformInteractionChoiceSet(choice_set_id_list[i].asInt(), + *choice_set); + for (size_t j = 0; j < (*choice_set)[strings::choice_set].length(); ++j) { + if (mobile_apis::InteractionMode::VR_ONLY != mode) { + size_t index = msg_params[strings::choice_set].length(); + msg_params[strings::choice_set][index] = + (*choice_set)[strings::choice_set][j]; + // vrCommands should be added via VR.AddCommand only + msg_params[strings::choice_set][index].erase(strings::vr_commands); + } + if (mobile_apis::InteractionMode::MANUAL_ONLY != + mode && !is_vr_help_item) { + smart_objects::SmartObject& vr_commands = + (*choice_set)[strings::choice_set][j][strings::vr_commands]; + if (0 < vr_commands.length()) { + // copy only first synonym + smart_objects::SmartObject item(smart_objects::SmartType_Map); + item[strings::text] = vr_commands[0].asString(); + item[strings::position] = index_array_of_vr_help + 1; + msg_params[strings::vr_help][index_array_of_vr_help++] = item; + } + } + } + } + } + if ((*message_)[strings::msg_params] + .keyExists(hmi_request::interaction_layout) + && mobile_apis::InteractionMode::VR_ONLY != mode) { + msg_params[hmi_request::interaction_layout] = + (*message_)[strings::msg_params][hmi_request::interaction_layout]. + asInt(); + } + CreateUIPerformInteraction(msg_params, app); +} + +void PerformInteractionRequest::CreateUIPerformInteraction( + const smart_objects::SmartObject& msg_params, + application_manager::ApplicationSharedPtr const app) { + SendHMIRequest(hmi_apis::FunctionID::UI_PerformInteraction, + &msg_params, true); +} + +void PerformInteractionRequest::SendTTSPerformInteractionRequest( + application_manager::ApplicationSharedPtr const app) { + smart_objects::SmartObject msg_params = + smart_objects::SmartObject(smart_objects::SmartType_Map); + + if ((*message_)[strings::msg_params].keyExists(strings::help_prompt)) { + + msg_params[strings::help_prompt] = + (*message_)[strings::msg_params][strings::help_prompt]; + + DeleteParameterFromTTSChunk(&msg_params[strings::help_prompt]); + } else { + + smart_objects::SmartObject& choice_list = + (*message_)[strings::msg_params][strings::interaction_choice_set_id_list]; + + msg_params[strings::help_prompt] = + smart_objects::SmartObject(smart_objects::SmartType_Array); + + int32_t index = 0; + for (uint32_t i = 0; i < choice_list.length(); ++i) { + smart_objects::SmartObject* choice_set = + app->FindChoiceSet(choice_list[i].asInt()); + + if (choice_set) { + for (uint32_t j = 0; + j < (*choice_set)[strings::choice_set].length(); + ++j) { + smart_objects::SmartObject& vr_commands = + (*choice_set)[strings::choice_set][j][strings::vr_commands]; + if (0 < vr_commands.length()) { + // copy only first synonym + smart_objects::SmartObject item(smart_objects::SmartType_Map); + item[strings::text] = vr_commands[0].asString(); + msg_params[strings::help_prompt][index++] = item; + } + } + } + } + } + + if ((*message_)[strings::msg_params].keyExists(strings::timeout_prompt)) { + msg_params[strings::timeout_prompt] = + (*message_)[strings::msg_params][strings::timeout_prompt]; + + DeleteParameterFromTTSChunk(&msg_params[strings::timeout_prompt]); + } else { + msg_params[strings::timeout_prompt] = msg_params[strings::help_prompt]; + } + + if ((*message_)[strings::msg_params].keyExists(strings::initial_prompt)) { + msg_params[strings::initial_prompt] = + (*message_)[strings::msg_params][strings::initial_prompt]; + + DeleteParameterFromTTSChunk(&msg_params[strings::initial_prompt]); + } + + mobile_apis::InteractionMode::eType mode = + static_cast<mobile_apis::InteractionMode::eType>( + (*message_)[strings::msg_params][strings::interaction_mode].asInt()); + + if (mobile_apis::InteractionMode::BOTH == mode || + mobile_apis::InteractionMode::MANUAL_ONLY == mode) { + msg_params[strings::timeout] = default_timeout_/2; + } else { + msg_params[strings::timeout] = default_timeout_; + } + + SendHMIRequest(hmi_apis::FunctionID::TTS_PerformInteraction, &msg_params, + true); +} + +void PerformInteractionRequest::DeleteParameterFromTTSChunk +(smart_objects::SmartObject* array_tts_chunk) { + int32_t length = array_tts_chunk->length(); + for (int32_t i = 0; i < length; ++i) { + array_tts_chunk[i].erase(strings::type); + } +} + +bool PerformInteractionRequest::CheckChoiceSetMenuNames( + application_manager::ApplicationSharedPtr const app) { + smart_objects::SmartObject& choice_list = + (*message_)[strings::msg_params][strings::interaction_choice_set_id_list]; + + for (size_t i = 0; i < choice_list.length(); ++i) { + // choice_set contains SmartObject msg_params + smart_objects::SmartObject* i_choice_set = app->FindChoiceSet( + choice_list[i].asInt()); + + for (size_t j = 0; j < choice_list.length(); ++j) { + smart_objects::SmartObject* j_choice_set = app->FindChoiceSet( + choice_list[j].asInt()); + + if (i == j) { + // skip check the same element + continue; + } + + if (!i_choice_set || !j_choice_set) { + LOG4CXX_ERROR(logger_, "Invalid ID"); + SendResponse(false, mobile_apis::Result::INVALID_ID); + return false; + } + + size_t ii = 0; + size_t jj = 0; + for (; ii < (*i_choice_set)[strings::choice_set].length(); ++ii) { + for (; jj < (*j_choice_set)[strings::choice_set].length(); ++jj) { + std::string ii_menu_name = + (*i_choice_set)[strings::choice_set][ii][strings::menu_name] + .asString(); + std::string jj_menu_name = + (*j_choice_set)[strings::choice_set][jj][strings::menu_name] + .asString(); + + if (ii_menu_name == jj_menu_name) { + LOG4CXX_ERROR(logger_, "Choice set has duplicated menu name"); + SendResponse(false, mobile_apis::Result::DUPLICATE_NAME, + "Choice set has duplicated menu name"); + return false; + } + } + } + } + } + + return true; +} + +bool PerformInteractionRequest::CheckChoiceSetVRSynonyms( + application_manager::ApplicationSharedPtr const app) { + smart_objects::SmartObject& choice_list = + (*message_)[strings::msg_params][strings::interaction_choice_set_id_list]; + + for (size_t i = 0; i < choice_list.length(); ++i) { + // choice_set contains SmartObject msg_params + smart_objects::SmartObject* i_choice_set = app->FindChoiceSet( + choice_list[i].asInt()); + + for (size_t j = 0; j < choice_list.length(); ++j) { + smart_objects::SmartObject* j_choice_set = app->FindChoiceSet( + choice_list[j].asInt()); + + if (i == j) { + // skip check the same element + continue; + } + + if ((!i_choice_set) || (!j_choice_set)) { + LOG4CXX_ERROR(logger_, "Invalid ID"); + SendResponse(false, mobile_apis::Result::INVALID_ID); + return false; + } + + size_t ii = 0; + size_t jj = 0; + for (; ii < (*i_choice_set)[strings::choice_set].length(); ++ii) { + for (; jj < (*j_choice_set)[strings::choice_set].length(); ++jj) { + // choice_set pointer contains SmartObject msg_params + smart_objects::SmartObject& ii_vr_commands = + (*i_choice_set)[strings::choice_set][ii][strings::vr_commands]; + + smart_objects::SmartObject& jj_vr_commands = + (*j_choice_set)[strings::choice_set][jj][strings::vr_commands]; + + for (size_t iii = 0; iii < ii_vr_commands.length(); ++iii) { + for (size_t jjj = 0; jjj < jj_vr_commands.length(); ++jjj) { + std::string vr_cmd_i = ii_vr_commands[iii].asString(); + std::string vr_cmd_j = jj_vr_commands[jjj].asString(); + if (0 == strcasecmp(vr_cmd_i.c_str(), vr_cmd_j.c_str())) { + LOG4CXX_ERROR(logger_, "Choice set has duplicated VR synonym"); + SendResponse(false, mobile_apis::Result::DUPLICATE_NAME, + "Choice set has duplicated VR synonym"); + return false; + } + } + } + } + } + } + } + + return true; +} + +bool PerformInteractionRequest::CheckVrHelpItemPositions( + application_manager::ApplicationSharedPtr const app) { + + if (!(*message_)[strings::msg_params].keyExists(strings::vr_help)) { + LOG4CXX_INFO(logger_, "" + "PerformInteractionRequest::CheckVrHelpItemPositions vr_help omitted"); + return true; + } + + smart_objects::SmartObject& vr_help = + (*message_)[strings::msg_params][strings::vr_help]; + + int32_t position = 1; + for (size_t i = 0; i < vr_help.length(); ++i) { + if (position != vr_help[i][strings::position].asInt()) { + LOG4CXX_ERROR(logger_, "Non-sequential vrHelp item position"); + SendResponse(false, mobile_apis::Result::REJECTED, + "Non-sequential vrHelp item position"); + return false; + } + ++position; + } + return true; +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/perform_interaction_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_interaction_response.cc new file mode 100644 index 000000000..4ceb4ce3b --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_interaction_response.cc @@ -0,0 +1,57 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/perform_interaction_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +PerformInteractionResponse::PerformInteractionResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +PerformInteractionResponse::~PerformInteractionResponse() { +} + +void PerformInteractionResponse::Run() { + LOG4CXX_INFO(logger_, "PerformInteractionResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/put_file_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/put_file_request.cc new file mode 100644 index 000000000..12d7c386a --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/put_file_request.cc @@ -0,0 +1,188 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/put_file_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "config_profile/profile.h" +#include "utils/file_system.h" + +namespace application_manager { + +namespace commands { + +PutFileRequest::PutFileRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +PutFileRequest::~PutFileRequest() { +} + +void PutFileRequest::Run() { + LOG4CXX_INFO(logger_, "PutFileRequest::Run"); + + ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application( + connection_key()); + + if (!application) { + LOG4CXX_ERROR(logger_, "Application is not registered"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + if (mobile_api::HMILevel::HMI_NONE == application->hmi_level() && + profile::Profile::instance()->put_file_in_none() <= + application->put_file_in_none_count()) { + // If application is in the HMI_NONE level the quantity of allowed + // PutFile request is limited by the configuration profile + LOG4CXX_ERROR(logger_, + "Too many requests from the app with HMILevel HMI_NONE "); + SendResponse(false, mobile_apis::Result::REJECTED); + return; + } + + if (!(*message_)[strings::params].keyExists(strings::binary_data)) { + LOG4CXX_ERROR(logger_, "Binary data empty"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + + if (!(*message_)[strings::msg_params].keyExists(strings::sync_file_name)) { + LOG4CXX_ERROR(logger_, "No file name"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + + if (!(*message_)[strings::msg_params].keyExists(strings::file_type)) { + LOG4CXX_ERROR(logger_, "No file type"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + const std::string& sync_file_name = + (*message_)[strings::msg_params][strings::sync_file_name].asString(); + const mobile_apis::FileType::eType& file_type = + static_cast<mobile_apis::FileType::eType>( + (*message_)[strings::msg_params][strings::file_type].asInt()); + const std::vector<uint8_t> binary_data = + (*message_)[strings::params][strings::binary_data].asBinary(); + + uint32_t offset = 0; + bool is_persistent_file = false; + bool is_system_file = false; + uint32_t length = binary_data.size(); + bool is_download_compleate = true; + bool offset_exist = (*message_)[strings::msg_params].keyExists(strings::offset); + + if (offset_exist) { + offset = (*message_)[strings::msg_params][strings::offset].asInt(); + } + if ((*message_)[strings::msg_params].keyExists(strings::length)) { + length = + (*message_)[strings::msg_params][strings::length].asInt(); + } + if ((*message_)[strings::msg_params]. + keyExists(strings::persistent_file)) { + is_persistent_file = + (*message_)[strings::msg_params][strings::persistent_file].asBool(); + } + if ((*message_)[strings::msg_params]. + keyExists(strings::system_file)) { + is_system_file = + (*message_)[strings::msg_params][strings::system_file].asBool(); + } + + if (is_system_file & (file_type != mobile_apis::FileType::BINARY)) { + LOG4CXX_INFO(logger_, "File is System but not binary"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + } + std::string relative_file_path = + file_system::CreateDirectory(application->name()); + relative_file_path += "/"; + relative_file_path += sync_file_name; + + mobile_apis::Result::eType save_result = + ApplicationManagerImpl::instance()->SaveBinary( + application->name(), + binary_data, + relative_file_path, + offset); + + switch (save_result) { + case mobile_apis::Result::SUCCESS: { + AppFile file(sync_file_name, is_persistent_file, is_download_compleate, file_type); + if (offset == 0) { + LOG4CXX_INFO(logger_, "New file downloading"); + if (!application->AddFile(file)) { + LOG4CXX_INFO(logger_, "Couldn't add file to application (File already Exist in application and was rewrited on fs) "); + // It can be first part of new big file, so we need tu update information about it's downloading status and percictency + if (!application->UpdateFile(file)) { + LOG4CXX_INFO(logger_, "Couldn't update file"); + // If it is impossible to update file, application doesn't know about existing this file + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + } else { + /* if file added - increment it's count ( may be application->AddFile have to incapsulate it? ) + * Any way now this method evals not only in "none"*/ + application->increment_put_file_in_none_count(); + } + } +// For future implementation ( when length will contains file size) +// if (offset + binary_data.size() == length) { +// LOG4CXX_INFO(logger_, "File is Fully downloaded"); +// if (!application->UpdateFile(file)) { +// // If it is impossible to update file, application doesn't know about existing this file +// SendResponse(false, mobile_apis::Result::INVALID_DATA); +// return; +// } +// } else { +// //TODO: Maybe need to save in AppFile information about downloading progress +// } + SendResponse(true, save_result); + break; + } + default: + if (mobile_apis::Result::OUT_OF_MEMORY == save_result) { + if (file_system::FileExists(relative_file_path)) { + DCHECK(file_system::DeleteFile(relative_file_path)); + } + } + LOG4CXX_INFO(logger_, "Save in unsuccesfull result = " << save_result); + SendResponse(false, save_result); + break; + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/put_file_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/put_file_response.cc new file mode 100644 index 000000000..493061d73 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/put_file_response.cc @@ -0,0 +1,69 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/put_file_response.h" +#include "utils/file_system.h" +#include "application_manager/application_impl.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +PutFileResponse::PutFileResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +PutFileResponse::~PutFileResponse() { +} + +void PutFileResponse::Run() { + LOG4CXX_INFO(logger_, "PutFileResponse::Run"); + uint32_t app_id = (*message_)[strings::params][strings::connection_key] + .asUInt(); + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + if (!app) { + LOG4CXX_ERROR(logger_, "Application not registered"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + (*message_)[strings::msg_params][strings::space_available] = + static_cast<int32_t>(file_system::GetAvailableSpaceForApp(app->name())); + + SendResponse((*message_)[strings::msg_params][strings::success].asBool()); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/read_did_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/read_did_request.cc new file mode 100644 index 000000000..f8b7aed0d --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/read_did_request.cc @@ -0,0 +1,111 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/read_did_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +ReadDIDRequest::ReadDIDRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +ReadDIDRequest::~ReadDIDRequest() { +} + +void ReadDIDRequest::Run() { + LOG4CXX_INFO(logger_, "ReadDIDRequest::Run"); + + uint32_t app_id = (*message_)[strings::params][strings::connection_key] + .asUInt(); + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "An application is not registered."); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + if (mobile_api::HMILevel::HMI_NONE == app->hmi_level()) { + SendResponse(false, mobile_apis::Result::REJECTED); + LOG4CXX_ERROR(logger_, "Rejected"); + return; + } + + if (0 == (*message_)[strings::msg_params][strings::did_location].length()) { + LOG4CXX_ERROR_EXT(logger_, "INVALID_DATA"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::app_id] = app->app_id(); + msg_params[strings::ecu_name] = + (*message_)[strings::msg_params][strings::ecu_name]; + msg_params[strings::did_location] = + (*message_)[strings::msg_params][strings::did_location]; + + SendHMIRequest(hmi_apis::FunctionID::VehicleInfo_ReadDID, &msg_params, true); +} + +void ReadDIDRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "ReadDIDRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::VehicleInfo_ReadDID: { + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + bool result = mobile_apis::Result::SUCCESS == result_code; + + SendResponse(result, result_code, NULL, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + return; + } + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/read_did_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/read_did_response.cc new file mode 100644 index 000000000..888b59075 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/read_did_response.cc @@ -0,0 +1,56 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/read_did_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +ReadDIDResponse::ReadDIDResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +ReadDIDResponse::~ReadDIDResponse() { +} + +void ReadDIDResponse::Run() { + LOG4CXX_INFO(logger_, "ReadDIDResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/register_app_interface_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/register_app_interface_request.cc new file mode 100644 index 000000000..620b38b28 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/register_app_interface_request.cc @@ -0,0 +1,573 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/register_app_interface_request.h" + +#include <unistd.h> +#include <algorithm> + +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" +#include "config_profile/profile.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +namespace commands { + +RegisterAppInterfaceRequest::RegisterAppInterfaceRequest( + const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +RegisterAppInterfaceRequest::~RegisterAppInterfaceRequest() { +} + +bool RegisterAppInterfaceRequest::Init() { + LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::Init"); + return true; +} + +void RegisterAppInterfaceRequest::Run() { + LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::Run "<< connection_key()); + + // wait till all HMI capabilities initialized + const HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + while (!hmi_capabilities.is_hmi_capabilities_initialized()) { + sleep(1); + // TODO(DK): timer_->StartWait(1); + ApplicationManagerImpl::instance()->updateRequestTimeout(connection_key(), + correlation_id(), + default_timeout()); + } + + ApplicationSharedPtr application = + ApplicationManagerImpl::instance()->application(connection_key()); + + if (application) { + SendResponse(false, mobile_apis::Result::APPLICATION_REGISTERED_ALREADY); + return; + } + + if (IsApplicationWithSameAppIdRegistered()) { + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + + mobile_apis::Result::eType restriction_result = CheckRestrictions(); + if (mobile_apis::Result::SUCCESS != restriction_result) { + LOG4CXX_ERROR_EXT(logger_, "Param names restrictions check failed."); + SendResponse(false, restriction_result); + return; + } + + mobile_apis::Result::eType coincidence_result = + CheckCoincidence(); + + if (mobile_apis::Result::SUCCESS != coincidence_result) { + LOG4CXX_ERROR_EXT(logger_, "Coincidence check failed."); + SendResponse(false, coincidence_result); + return; + } + + ApplicationSharedPtr app = + ApplicationManagerImpl::instance()->RegisterApplication(message_); + + const smart_objects::SmartObject& msg_params = + (*message_)[strings::msg_params]; + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "Application " << + msg_params[strings::app_name].asString() << " hasn't been registered!"); + } else { + app->set_is_media_application( + msg_params[strings::is_media_application].asBool()); + + if (msg_params.keyExists(strings::vr_synonyms)) { + app->set_vr_synonyms(msg_params[strings::vr_synonyms]); + } + + if (msg_params.keyExists(strings::ngn_media_screen_app_name)) { + app->set_ngn_media_screen_name( + msg_params[strings::ngn_media_screen_app_name]); + } + + if (msg_params.keyExists(strings::tts_name)) { + app->set_tts_name(msg_params[strings::tts_name]); + } + + if (msg_params.keyExists(strings::app_hmi_type)) { + app->set_app_types(msg_params[strings::app_hmi_type]); + + // check if app is NAVI + const int32_t is_navi_type = mobile_apis::AppHMIType::NAVIGATION; + const smart_objects::SmartObject& app_type = + msg_params.getElement(strings::app_hmi_type); + + for (size_t i = 0; i < app_type.length(); ++i) { + if (is_navi_type == app_type.getElement(i).asInt()) { + app->set_allowed_support_navigation(true); + } + } + } + + MessageHelper::SendOnAppRegisteredNotificationToHMI(*app); + SendRegisterAppInterfaceResponseToMobile(); + + } +} + +void RegisterAppInterfaceRequest::SendVrCommandsOnRegisterAppToHMI +(const application_manager::Application& application_impl) { + uint32_t max_cmd_id = profile::Profile::instance()->max_cmd_id(); + uint32_t app_id = application_impl.app_id(); + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::cmd_id] = (max_cmd_id + app_id); + msg_params[strings::vr_commands] = *(application_impl.vr_synonyms()); + if (0 < app_id) { + msg_params[strings::app_id] = app_id; + } + SendHMIRequest(hmi_apis::FunctionID::VR_AddCommand, &msg_params); +} + +void RegisterAppInterfaceRequest::SendTTSChunksToHMI +(const application_manager::Application& application_impl) { + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::app_id] = application_impl.app_id(); + msg_params[strings::tts_chunks] = *(application_impl.tts_name()); + SendHMIRequest(hmi_apis::FunctionID::TTS_Speak, &msg_params, true); +} + +void RegisterAppInterfaceRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::on_event"); + switch (event.id()) { + case hmi_apis::FunctionID::TTS_Speak: { + const smart_objects::SmartObject& message = event.smart_object(); + + mobile_apis::Result::eType tts_result = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + SendRegisterAppInterfaceResponseToMobile(tts_result); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + break; + } + } +} + + +void RegisterAppInterfaceRequest::SendRegisterAppInterfaceResponseToMobile( + mobile_apis::Result::eType result) { + smart_objects::SmartObject* params = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + + if (!params) { + SendResponse(false, mobile_apis::Result::OUT_OF_MEMORY); + return; + } + + ApplicationManagerImpl* app_manager = ApplicationManagerImpl::instance(); + const HMICapabilities& hmi_capabilities = app_manager->hmi_capabilities(); + ApplicationSharedPtr application = + ApplicationManagerImpl::instance()->application(connection_key()); + + smart_objects::SmartObject& response_params = *params; + + response_params[strings::sync_msg_version][strings::major_version] = + APIVersion::kAPIV2; + response_params[strings::sync_msg_version][strings::minor_version] = + APIVersion::kAPIV2; + + response_params[strings::language] = hmi_capabilities.active_vr_language(); + response_params[strings::hmi_display_language] = + hmi_capabilities.active_ui_language(); + + const smart_objects::SmartObject& msg_params = + (*message_)[strings::msg_params]; + + if (msg_params[strings::language_desired].asInt() != + hmi_capabilities.active_vr_language() || + msg_params[strings::hmi_display_language_desired].asInt() != + hmi_capabilities.active_ui_language()) { + + LOG4CXX_WARN_EXT( + logger_, + "Wrong language on registering application " << application->name()); + + LOG4CXX_ERROR_EXT( + logger_, + "vr " + << msg_params[strings::language_desired].asInt() + << " - " + << hmi_capabilities.active_vr_language() + << "ui " + << msg_params[strings::hmi_display_language_desired].asInt() + << " - " + << hmi_capabilities.active_ui_language()); + + result = mobile_apis::Result::WRONG_LANGUAGE; + } + + if (hmi_capabilities.display_capabilities()) { + + response_params[hmi_response::display_capabilities] = + smart_objects::SmartObject(smart_objects::SmartType_Map); + + smart_objects::SmartObject& display_caps = + response_params[hmi_response::display_capabilities]; + + display_caps[hmi_response::display_type] = + hmi_capabilities.display_capabilities()->getElement( + hmi_response::display_type); + + display_caps[hmi_response::text_fields] = + hmi_capabilities.display_capabilities()->getElement( + hmi_response::text_fields); + + display_caps[hmi_response::media_clock_formats] = + hmi_capabilities.display_capabilities()->getElement( + hmi_response::media_clock_formats); + + 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.display_capabilities()->getElement( + hmi_response::image_capabilities).length() > 0) { + + display_caps[hmi_response::graphic_supported] = true; + } else { + + display_caps[hmi_response::graphic_supported] = false; + } + } + + if (hmi_capabilities.button_capabilities()) { + response_params[hmi_response::button_capabilities] = + *hmi_capabilities.button_capabilities(); + } + if (hmi_capabilities.soft_button_capabilities()) { + response_params[hmi_response::soft_button_capabilities] = + *hmi_capabilities.soft_button_capabilities(); + } + if (hmi_capabilities.preset_bank_capabilities()) { + response_params[hmi_response::preset_bank_capabilities] = + *hmi_capabilities.preset_bank_capabilities(); + } + if (hmi_capabilities.hmi_zone_capabilities()) { + response_params[hmi_response::hmi_zone_capabilities] = + *hmi_capabilities.hmi_zone_capabilities(); + } + if (hmi_capabilities.speech_capabilities()) { + response_params[strings::speech_capabilities] = + *hmi_capabilities.speech_capabilities(); + } + if (hmi_capabilities.vr_capabilities()) { + response_params[strings::vr_capabilities] = + *hmi_capabilities.vr_capabilities(); + } + if (hmi_capabilities.audio_pass_thru_capabilities()) { + response_params[strings::audio_pass_thru_capabilities] = + *hmi_capabilities.audio_pass_thru_capabilities(); + } + if (hmi_capabilities.vehicle_type()) { + response_params[hmi_response::vehicle_type] = + *hmi_capabilities.vehicle_type(); + } + if (hmi_capabilities.prerecorded_speech()) { + response_params[strings::prerecorded_speech] = + *(hmi_capabilities.prerecorded_speech()); + } + + const std::vector<uint32_t>& diag_modes = + profile::Profile::instance()->supported_diag_modes(); + if (!diag_modes.empty()) { + std::vector<uint32_t>::const_iterator it = diag_modes.begin(); + uint32_t index = 0; + for (; it != diag_modes.end(); ++it) { + response_params[strings::supported_diag_modes][index] = *it; + ++index; + } + } + + ResumeCtrl& resumer = ApplicationManagerImpl::instance()->resume_controller(); + uint32_t hash_id = 0; + + if ((*message_)[strings::msg_params].keyExists(strings::hash_id)) { + + hash_id = (*message_)[strings::msg_params][strings::hash_id].asUInt(); + if (!resumer.CheckApplicationHash((*application->mobile_app_id()).asInt(), + hash_id)) { + result = mobile_apis::Result::RESUME_FAILED; + } + } + + SendResponse(true, result, "", params); + resumer.StartResumption(application, hash_id); +} + +mobile_apis::Result::eType +RegisterAppInterfaceRequest::CheckCoincidence() { + + LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::CheckCoincidence "); + + const smart_objects::SmartObject& msg_params = + (*message_)[strings::msg_params]; + + ApplicationManagerImpl* app_manager = ApplicationManagerImpl::instance(); + + const std::set<ApplicationSharedPtr>& applications = app_manager->applications(); + std::set<ApplicationSharedPtr>::const_iterator it = applications.begin(); + const std::string app_name = msg_params[strings::app_name].asString(); + + for (; applications.end() != it; ++it) { + + // name check + const std::string &cur_name = (*it)->name(); + if (!strcasecmp(app_name.c_str(), cur_name.c_str())) { + LOG4CXX_ERROR(logger_, "Application name is known already."); + return mobile_apis::Result::DUPLICATE_NAME; + } + + const smart_objects::SmartObject* tts = (*it)->tts_name(); + std::vector<smart_objects::SmartObject>* curr_tts = NULL; + if (NULL != tts) { + curr_tts = tts->asArray(); + CoincidencePredicateTTS t(app_name); + + if (0 != std::count_if((*curr_tts).begin(), (*curr_tts).end(), t)) { + LOG4CXX_ERROR(logger_, "Application name is known already."); + return mobile_apis::Result::DUPLICATE_NAME; + } + } + + const smart_objects::SmartObject* vr = (*it)->vr_synonyms(); + const std::vector<smart_objects::SmartObject>* curr_vr = NULL; + if (NULL != vr) { + curr_vr = vr->asArray(); + CoincidencePredicateVR v(app_name); + + if (0 != std::count_if(curr_vr->begin(), curr_vr->end(), v )) { + LOG4CXX_ERROR(logger_, "Application name is known already."); + return mobile_apis::Result::DUPLICATE_NAME; + } + } + + + // tts check + if (msg_params.keyExists(strings::tts_name)) { + + const std::vector<smart_objects::SmartObject>* new_tts = + msg_params[strings::tts_name].asArray(); + + std::vector<smart_objects::SmartObject>::const_iterator it_tts = + new_tts->begin(); + + std::vector<smart_objects::SmartObject>::const_iterator it_tts_End = + new_tts->end(); + + for (; it_tts != it_tts_End; ++it_tts) { + std::string text = (*it_tts)[strings::text].asString(); + if (!strcasecmp(cur_name.c_str(), text.c_str())){ + LOG4CXX_ERROR(logger_, + "Some TTS parameters names are known already."); + return mobile_apis::Result::DUPLICATE_NAME; + } + + CoincidencePredicateTTS t((*it_tts)[strings::text].asString()); + if (NULL != curr_tts + && 0 != std::count_if(curr_tts->begin(), curr_tts->end(), t)) { + LOG4CXX_ERROR(logger_, + "Some TTS parameters names are known already."); + return mobile_apis::Result::DUPLICATE_NAME; + } + + CoincidencePredicateVR v((*it_tts)[strings::text].asString()); + if (NULL != curr_vr + && 0 != std::count_if(curr_vr->begin(), curr_vr->end(), v)) { + LOG4CXX_ERROR(logger_, + "Some TTS parameters names are known already."); + return mobile_apis::Result::DUPLICATE_NAME; + } + } + } // end tts check + + if (msg_params.keyExists(strings::vr_synonyms)) { + + const std::vector<smart_objects::SmartObject>* new_vr = + msg_params[strings::vr_synonyms].asArray(); + + std::vector<smart_objects::SmartObject>::const_iterator it_vr = + new_vr->begin(); + + std::vector<smart_objects::SmartObject>::const_iterator it_vr_End = + new_vr->end(); + + for (; it_vr != it_vr_End; ++it_vr) { + std::string vr_synonym = it_vr->asString(); + if (!strcasecmp(cur_name.c_str(), vr_synonym.c_str())) { + LOG4CXX_ERROR(logger_, "Some VR synonyms are known already."); + return mobile_apis::Result::DUPLICATE_NAME; + } + + CoincidencePredicateTTS t(it_vr->asString()); + if (NULL !=curr_tts + && 0 != std::count_if(curr_tts->begin(), curr_tts->end(), t)) { + LOG4CXX_ERROR(logger_, "Some VR synonyms are known already."); + return mobile_apis::Result::DUPLICATE_NAME; + } + + CoincidencePredicateVR v(it_vr->asString()); + if (NULL != curr_vr + && 0 != std::count_if(curr_vr->begin(), curr_vr->end(), v)) { + LOG4CXX_ERROR(logger_, "Some VR synonyms are known already."); + return mobile_apis::Result::DUPLICATE_NAME; + } + } + } // end vr check + + } // application for end + + return mobile_apis::Result::SUCCESS; +} // method end + +mobile_apis::Result::eType +RegisterAppInterfaceRequest::CheckRestrictions() const { + + LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::CheckRestrictions"); + + const smart_objects::SmartObject& msg_params = + (*message_)[strings::msg_params]; + + const std::string& app_name = msg_params[strings::app_name].asString(); + + if (ClearParamName(app_name).empty()) { + printf("Application name is empty.\n"); + return mobile_apis::Result::INVALID_DATA; + } + + if ((app_name[0] == '\n') || + ((app_name[0] == '\\') && (app_name[1] == 'n'))) { + + printf("Application name has invalid characters."); + return mobile_apis::Result::INVALID_DATA; + } + + if (msg_params.keyExists(strings::tts_name)) { + + const smart_objects::SmartArray* tts = + msg_params[strings::tts_name].asArray(); + + smart_objects::SmartArray::const_iterator it = tts->begin(); + smart_objects::SmartArray::const_iterator it_end = tts->end(); + + for (; it != it_end; ++it) { + + const std::string& tts_name = (*it)[strings::text].asString(); + + if (ClearParamName(tts_name).empty()) { + printf("TTS value is empty."); + return mobile_apis::Result::INVALID_DATA; + } + + if ((tts_name[0] == '\n') || + ((tts_name[0] == '\\') && (tts_name[1] == 'n'))) { + + printf("TTS value(s) has invalid characters."); + return mobile_apis::Result::INVALID_DATA; + } + } + } + + return mobile_apis::Result::SUCCESS; +} + +std::string +RegisterAppInterfaceRequest::ClearParamName(std::string param_name) const { + + // Expecting for chars different from newlines and spaces in the appName + // + // There is an agreement, that "\n" is not allowed symbols, so we have to + // check for this case also + + std::string newline = "\\n"; + while (std::string::npos != param_name.find(newline)) { + param_name.erase(param_name.find(newline), newline.length()); + } + + std::string::iterator param_name_new_end = + std::remove_if(param_name.begin(), param_name.end(), ::isspace); + + return std::string(param_name.begin(), param_name_new_end); +} + +bool RegisterAppInterfaceRequest::IsApplicationWithSameAppIdRegistered() { + + LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::IsApplicationRegistered"); + + int32_t mobile_app_id = (*message_)[strings::msg_params][strings::app_id].asInt(); + + const std::set<ApplicationSharedPtr>& applications = + ApplicationManagerImpl::instance()->applications(); + + std::set<ApplicationSharedPtr>::const_iterator it = applications.begin(); + std::set<ApplicationSharedPtr>::const_iterator it_end = applications.end(); + + for (; it != it_end; ++it) { + if (mobile_app_id == (*it)->mobile_app_id()->asInt()) { + return true; + } + } + + return false; +} + + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/register_app_interface_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/register_app_interface_response.cc new file mode 100644 index 000000000..3f35c44d6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/register_app_interface_response.cc @@ -0,0 +1,72 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/register_app_interface_response.h" +#include "interfaces/MOBILE_API.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" + +namespace application_manager { + +namespace commands { + +void RegisterAppInterfaceResponse::Run() { + LOG4CXX_INFO(logger_, "RegisterAppInterfaceResponse::Run"); + + bool success = (*message_)[strings::msg_params][strings::success].asBool(); + + bool last_message = !success; + // Do not close connection in case of APPLICATION_NOT_REGISTERED despite it is an error + if (!success && (*message_)[strings::msg_params].keyExists(strings::result_code)) { + mobile_apis::Result::eType result_code = + mobile_apis::Result::eType((*message_)[strings::msg_params][strings::result_code].asInt()); + if (result_code == mobile_apis::Result::APPLICATION_REGISTERED_ALREADY) { + last_message = false; + } + } + + SendResponse(success, mobile_apis::Result::INVALID_ENUM, last_message); + + if (success) { + ApplicationSharedPtr application = + ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asInt()); + + MessageHelper::SendHMIStatusNotification(*application); + MessageHelper::SendChangeRegistrationRequestToHMI(application); + } +} + +} // namespace commands +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/reset_global_properties_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/reset_global_properties_request.cc new file mode 100644 index 000000000..4a8939a43 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/reset_global_properties_request.cc @@ -0,0 +1,339 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/reset_global_properties_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" +#include "config_profile/profile.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +ResetGlobalPropertiesRequest::ResetGlobalPropertiesRequest( + const MessageSharedPtr& message) + : CommandRequestImpl(message), + is_ui_send_(false), + is_tts_send_(false), + is_ui_received_(false), + is_tts_received_(false), + ui_result_(hmi_apis::Common_Result::INVALID_ENUM), + tts_result_(hmi_apis::Common_Result::INVALID_ENUM) { +} + +ResetGlobalPropertiesRequest::~ResetGlobalPropertiesRequest() { +} + +void ResetGlobalPropertiesRequest::Run() { + LOG4CXX_INFO(logger_, "ResetGlobalPropertiesRequest::Run"); + + uint32_t app_id = (*message_)[strings::params][strings::connection_key].asUInt(); + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "No application associated with session key"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + size_t obj_length = (*message_)[strings::msg_params][strings::properties] + .length(); + + bool helpt_promt = false; + bool timeout_prompt = false; + bool vr_help_title = false; + bool vr_help_items = false; + bool menu_name = false; + bool menu_icon = false; + bool is_key_board_properties = false; + + for (size_t i = 0; i < obj_length; ++i) { + switch ((*message_)[strings::msg_params][strings::properties][i].asInt()) { + case GlobalProperty::HELPPROMT: { + helpt_promt = ResetHelpPromt(app); + break; + } + case GlobalProperty::TIMEOUTPROMT: { + timeout_prompt = ResetTimeoutPromt(app); + break; + } + case GlobalProperty::VRHELPTITLE: { + vr_help_title = ResetVrHelpTitle(app); + break; + } + case GlobalProperty::VRHELPITEMS: { + vr_help_items = ResetVrHelpItems(app); + break; + } + case mobile_apis::GlobalProperty::MENUNAME: { + menu_name = true; + break; + } + case mobile_apis::GlobalProperty::MENUICON: { + menu_icon = true; + break; + } + case mobile_apis::GlobalProperty::KEYBOARDPROPERTIES: { + is_key_board_properties = true; + break; + } + default: { + LOG4CXX_ERROR( + logger_, + "Unknown global property 0x%02X value" + << (*message_)[strings::msg_params][strings::properties][i].asInt()); + break; + } + } + } + + if (vr_help_title || vr_help_items || menu_name || menu_icon + || is_key_board_properties) { + is_ui_send_ = true; + } + + if (timeout_prompt || helpt_promt) { + is_tts_send_ = true; + } + + app->set_reset_global_properties_active(true); + + if (vr_help_title || vr_help_items || menu_name || menu_icon + || is_key_board_properties) { + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + if (vr_help_title || vr_help_items) { + smart_objects::SmartObject* vr_help = MessageHelper::CreateAppVrHelp(app); + if (!vr_help) { + return; + } + msg_params = *vr_help; + } + if (menu_name) { + msg_params[hmi_request::menu_title] = ""; + } + //TODO(DT): clarify the sending parameter menuIcon + //if (menu_icon) { + //} + if (is_key_board_properties) { + smart_objects::SmartObject key_board_properties = smart_objects:: + SmartObject(smart_objects::SmartType_Map); + key_board_properties[strings::language] = static_cast<int32_t> + (hmi_apis::Common_Language::EN_US); + key_board_properties[hmi_request::keyboard_layout] = static_cast<int32_t> + (hmi_apis::Common_KeyboardLayout::QWERTY); + key_board_properties[hmi_request::send_dynamic_entry] = false; + + // Look for APPLINK-4432 for details. + /*smart_objects::SmartObject limited_character_list = smart_objects::SmartObject( + smart_objects::SmartType_Array); + limited_character_list[0] = ""; + key_board_properties[hmi_request::limited_character_list] = + limited_character_list;*/ + + key_board_properties[hmi_request::auto_complete_text] = ""; + msg_params[hmi_request::keyboard_properties] = key_board_properties; + } + + msg_params[strings::app_id] = app->app_id(); + SendHMIRequest(hmi_apis::FunctionID::UI_SetGlobalProperties, + &msg_params, true); + } + + if (timeout_prompt || helpt_promt) { + // create ui request + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + if (helpt_promt) { + msg_params[strings::help_prompt] = (*app->help_prompt()); + } + + if (timeout_prompt) { + msg_params[strings::timeout_prompt] = (*app->timeout_prompt()); + } + + msg_params[strings::app_id] = app->app_id(); + + SendHMIRequest(hmi_apis::FunctionID::TTS_SetGlobalProperties, + &msg_params, true); + } +} + +bool ResetGlobalPropertiesRequest::ResetHelpPromt( + application_manager::ApplicationSharedPtr app) { + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "Null pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return false; + } + + const std::vector<std::string>& help_prompt = profile::Profile::instance() + ->help_prompt(); + + smart_objects::SmartObject so_help_prompt = smart_objects::SmartObject( + smart_objects::SmartType_Array); + + for (uint32_t i = 0; i < help_prompt.size(); ++i) { + smart_objects::SmartObject helpPrompt = smart_objects::SmartObject( + smart_objects::SmartType_Map); + helpPrompt[strings::text] = help_prompt[i]; + helpPrompt[strings::type] = hmi_apis::Common_SpeechCapabilities::SC_TEXT; + so_help_prompt[i] = helpPrompt; + } + + app->set_help_prompt(so_help_prompt); + + return true; +} + +bool ResetGlobalPropertiesRequest::ResetTimeoutPromt( + application_manager::ApplicationSharedPtr const app) { + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "Null pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return false; + } + + const std::vector<std::string>& time_out_promt = profile::Profile::instance() + ->time_out_promt(); + + smart_objects::SmartObject so_time_out_promt = smart_objects::SmartObject( + smart_objects::SmartType_Array); + + for (uint32_t i = 0; i < time_out_promt.size(); ++i) { + smart_objects::SmartObject timeoutPrompt = smart_objects::SmartObject( + smart_objects::SmartType_Map); + timeoutPrompt[strings::text] = time_out_promt[i]; + timeoutPrompt[strings::type] = hmi_apis::Common_SpeechCapabilities::SC_TEXT; + so_time_out_promt[i] = timeoutPrompt; + } + + app->set_timeout_prompt(so_time_out_promt); + + return true; +} + +bool ResetGlobalPropertiesRequest::ResetVrHelpTitle( + application_manager::ApplicationSharedPtr const app) { + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "Null pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return false; + } + app->reset_vr_help_title(); + + return true; +} + +bool ResetGlobalPropertiesRequest::ResetVrHelpItems( + application_manager::ApplicationSharedPtr const app) { + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "Null pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return false; + } + app->reset_vr_help(); + + return true; +} + +void ResetGlobalPropertiesRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "ResetGlobalPropertiesRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::UI_SetGlobalProperties: { + LOG4CXX_INFO(logger_, "Received UI_SetGlobalProperties event"); + is_ui_received_ = true; + ui_result_ = static_cast<hmi_apis::Common_Result::eType>( + message[strings::params][hmi_response::code].asInt()); + break; + } + case hmi_apis::FunctionID::TTS_SetGlobalProperties: { + LOG4CXX_INFO(logger_, "Received TTS_SetGlobalProperties event"); + is_tts_received_ = true; + tts_result_ = static_cast<hmi_apis::Common_Result::eType>( + message[strings::params][hmi_response::code].asInt()); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + return; + } + } + + if (!IsPendingResponseExist()) { + bool result = ((hmi_apis::Common_Result::SUCCESS == ui_result_) + && (hmi_apis::Common_Result::SUCCESS == tts_result_ || + hmi_apis::Common_Result::UNSUPPORTED_RESOURCE == tts_result_)) + || ((hmi_apis::Common_Result::SUCCESS == ui_result_) + && (hmi_apis::Common_Result::INVALID_ENUM == tts_result_)) + || ((hmi_apis::Common_Result::INVALID_ENUM == ui_result_) + && (hmi_apis::Common_Result::SUCCESS == tts_result_)); + + mobile_apis::Result::eType result_code; + const char* return_info = NULL; + + if (result) { + if (hmi_apis::Common_Result::UNSUPPORTED_RESOURCE == tts_result_) { + result_code = mobile_apis::Result::WARNINGS; + return_info = std::string("Unsupported phoneme type sent in a prompt").c_str(); + } else { + result_code = static_cast<mobile_apis::Result::eType>( + std::max(ui_result_, tts_result_)); + } + } else { + result_code = static_cast<mobile_apis::Result::eType>( + std::max(ui_result_, tts_result_)); + } + + ApplicationSharedPtr application = + ApplicationManagerImpl::instance()->application(connection_key()); + SendResponse(result, static_cast<mobile_apis::Result::eType>(result_code), + return_info, &(message[strings::msg_params])); + application->UpdateHash(); + } +} + +bool ResetGlobalPropertiesRequest::IsPendingResponseExist() { + return is_ui_send_ != is_ui_received_ || is_tts_send_ != is_tts_received_; +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/reset_global_properties_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/reset_global_properties_response.cc new file mode 100644 index 000000000..aeacabf9d --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/reset_global_properties_response.cc @@ -0,0 +1,57 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/reset_global_properties_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +ResetGlobalPropertiesResponse::ResetGlobalPropertiesResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +ResetGlobalPropertiesResponse::~ResetGlobalPropertiesResponse() { +} + +void ResetGlobalPropertiesResponse::Run() { + LOG4CXX_INFO(logger_, "ResetGlobalPropertiesResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/scrollable_message_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/scrollable_message_request.cc new file mode 100644 index 000000000..e949b9888 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/scrollable_message_request.cc @@ -0,0 +1,159 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/scrollable_message_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +ScrollabelMessageRequest::ScrollabelMessageRequest( + const MessageSharedPtr& message) + : CommandRequestImpl(message), + result_(mobile_apis::Result::INVALID_ENUM) { + + subscribe_on_event(hmi_apis::FunctionID::UI_OnResetTimeout); +} + +ScrollabelMessageRequest::~ScrollabelMessageRequest() { +} + +bool ScrollabelMessageRequest::Init() { + + /* Timeout in milliseconds. + If omitted a standard value of 10000 milliseconds is used.*/ + if ((*message_)[strings::msg_params].keyExists(strings::timeout)) { + default_timeout_ = + (*message_)[strings::msg_params][strings::timeout].asUInt(); + } else { + const int32_t def_value = 30000; + default_timeout_ = def_value; + } + + return true; +} + +void ScrollabelMessageRequest::Run() { + LOG4CXX_INFO(logger_, "ScrollabelMessageRequest::Run"); + + ApplicationSharedPtr app = application_manager::ApplicationManagerImpl::instance() + ->application((*message_)[strings::params][strings::connection_key].asUInt()); + + if (!app) { + LOG4CXX_ERROR(logger_, "Application is not registered"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + mobile_apis::Result::eType processing_result = + MessageHelper::ProcessSoftButtons((*message_)[strings::msg_params], app); + + if (mobile_apis::Result::SUCCESS != processing_result) { + if (mobile_apis::Result::INVALID_DATA == processing_result) { + LOG4CXX_ERROR(logger_, "Wrong soft buttons parameters!"); + SendResponse(false, processing_result); + return; + } + if (mobile_apis::Result::UNSUPPORTED_RESOURCE == processing_result) { + LOG4CXX_ERROR(logger_, "UNSUPPORTED_RESOURCE!"); + result_ = processing_result; + } + } + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + msg_params[hmi_request::message_text][hmi_request::field_name] = + static_cast<int32_t>(application_manager::TextFieldName::SCROLLABLE_MSG_BODY); + msg_params[hmi_request::message_text][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::scroll_message_body]; + msg_params[strings::app_id] = app->app_id(); + msg_params[strings::timeout] = default_timeout_; + + if ((*message_)[strings::msg_params].keyExists(strings::soft_buttons)) { + msg_params[strings::soft_buttons] = + (*message_)[strings::msg_params][strings::soft_buttons]; + } + + SendHMIRequest(hmi_apis::FunctionID::UI_ScrollableMessage, &msg_params, true); +} + +void ScrollabelMessageRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "ScrollabelMessageRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::UI_OnResetTimeout: { + LOG4CXX_INFO(logger_, "Received UI_OnResetTimeout event"); + ApplicationManagerImpl::instance()->updateRequestTimeout(connection_key(), + correlation_id(), + default_timeout()); + break; + } + case hmi_apis::FunctionID::UI_ScrollableMessage: { + LOG4CXX_INFO(logger_, "Received UI_ScrollableMessage event"); + + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType> + (message[strings::params][hmi_response::code].asInt()); + + bool result = false; + if (mobile_apis::Result::SUCCESS == result_code) { + result = true; + } + if (mobile_apis::Result::ABORTED == result_code) { + result = true; + } else + + if (mobile_apis::Result::INVALID_ENUM != result_) { + result_code = result_; + } + + SendResponse(result, result_code, NULL, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_,"Received unknown event" << event.id()); + break; + } + } +} + +} // namespace commands +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/scrollable_message_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/scrollable_message_response.cc new file mode 100644 index 000000000..45a8e991f --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/scrollable_message_response.cc @@ -0,0 +1,55 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/scrollable_message_response.h" +#include "application_manager/application_manager_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +ScrollableMessageResponse::ScrollableMessageResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +void ScrollableMessageResponse::Run() { + LOG4CXX_INFO(logger_, "ScrollableMessageResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc new file mode 100644 index 000000000..5ee701365 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc @@ -0,0 +1,109 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/set_display_layout_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" + + +namespace application_manager { + +namespace commands { + +SetDisplayLayoutRequest::SetDisplayLayoutRequest( + const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +SetDisplayLayoutRequest::~SetDisplayLayoutRequest() { +} + +void SetDisplayLayoutRequest::Run() { + LOG4CXX_INFO(logger_, "SetDisplayLayoutRequest::Run"); + + ApplicationConstSharedPtr app = ApplicationManagerImpl::instance() + ->application(connection_key()); + + if (!app) { + LOG4CXX_ERROR(logger_, "Application is not registered"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + (*message_)[strings::msg_params][strings::app_id] = app->app_id(); + + SendHMIRequest(hmi_apis::FunctionID::UI_SetDisplayLayout, + &((*message_)[strings::msg_params]), true); + +} + +void SetDisplayLayoutRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "SetDisplayLayoutRequest::on_event"); + + const smart_objects::SmartObject& message = event.smart_object(); + switch (event.id()) { + case hmi_apis::FunctionID::UI_SetDisplayLayout: { + LOG4CXX_INFO(logger_, "Received UI_SetDisplayLayout event"); + + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + bool response_success = mobile_apis::Result::SUCCESS == result_code; + if (response_success) { + HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + if (message[strings::msg_params].keyExists(hmi_response::display_capabilities)) { + hmi_capabilities.set_display_capabilities( + message[strings::msg_params][hmi_response::display_capabilities]); + } + + if (message[strings::msg_params].keyExists( + hmi_response::soft_button_capabilities)) { + hmi_capabilities.set_soft_button_capabilities( + message[strings::msg_params][hmi_response::soft_button_capabilities]); + } + + } + SendResponse(response_success, result_code, NULL, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_,"Received unknown event" << event.id()); + return; + } + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_display_layout_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_display_layout_response.cc new file mode 100644 index 000000000..51f8c1f35 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_display_layout_response.cc @@ -0,0 +1,59 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/set_display_layout_response.h" +#include "application_manager/application_impl.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +SetDisplayLayoutResponse::SetDisplayLayoutResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +SetDisplayLayoutResponse::~SetDisplayLayoutResponse() { +} + +void SetDisplayLayoutResponse::Run() { + LOG4CXX_INFO(logger_, "SetDisplayLayoutResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); + +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_global_properties_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_global_properties_request.cc new file mode 100644 index 000000000..cfb4be5af --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_global_properties_request.cc @@ -0,0 +1,350 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include <algorithm> +#include "application_manager/commands/mobile/set_global_properties_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +SetGlobalPropertiesRequest::SetGlobalPropertiesRequest( + const MessageSharedPtr& message) + : CommandRequestImpl(message), + is_ui_send_(false), + is_tts_send_(false), + is_ui_received_(false), + is_tts_received_(false), + ui_result_(hmi_apis::Common_Result::INVALID_ENUM), + tts_result_(hmi_apis::Common_Result::INVALID_ENUM) { +} + +SetGlobalPropertiesRequest::~SetGlobalPropertiesRequest() { +} + +void SetGlobalPropertiesRequest::Run() { + LOG4CXX_INFO(logger_, "SetGlobalPropertiesRequest::Run"); + + const smart_objects::SmartObject& msg_params = + (*message_)[strings::msg_params]; + + uint32_t app_id = + (*message_)[strings::params][strings::connection_key].asUInt(); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "No application associated with session key"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + if (!ValidateConditionalMandatoryParameters(msg_params)) { + SendResponse(false, + mobile_apis::Result::INVALID_DATA, + "There are no parameters present in request."); + return; + } + + // Check for image file(s) in vrHelpItem + mobile_apis::Result::eType verification_result = + MessageHelper::VerifyImageFiles((*message_)[strings::msg_params], app); + + if (mobile_apis::Result::SUCCESS != verification_result) { + LOG4CXX_ERROR_EXT( + logger_, + "MessageHelper::VerifyImageFiles return " << verification_result); + SendResponse(false, verification_result); + return; + } + + + bool is_help_prompt_present = msg_params.keyExists(strings::help_prompt); + bool is_timeout_prompt_present = msg_params.keyExists( + strings::timeout_prompt); + bool is_vr_help_title_present = msg_params.keyExists(strings::vr_help_title); + bool is_vr_help_present = msg_params.keyExists(strings::vr_help); + bool is_menu_title_present = msg_params.keyExists(hmi_request::menu_title); + bool is_menu_icon_present = msg_params.keyExists(hmi_request::menu_icon); + bool is_keyboard_props_present = + msg_params.keyExists(hmi_request::keyboard_properties); + + // Media-only applications support API v2.1 with less parameters + if (!app->allowed_support_navigation() && + (is_keyboard_props_present || + is_menu_icon_present || + is_menu_title_present) + ) { + const std::string app_type = + app->is_media_application() ? "media" : "non-media"; + + const std::string message = + "There are too many parameters for "+app_type+" application."; + SendResponse(false, + mobile_apis::Result::INVALID_DATA, + message.c_str()); + return; + } + + if ((is_vr_help_title_present && is_vr_help_present) || + (!is_vr_help_title_present && !is_vr_help_present)) { + is_ui_send_ = true; + } + + if (is_help_prompt_present || is_timeout_prompt_present) { + is_tts_send_ = true; + } + + if (is_vr_help_title_present && is_vr_help_present) { + // check vrhelpitem position index + if (!CheckVrHelpItemsOrder()) { + LOG4CXX_ERROR(logger_, "Request rejected"); + SendResponse(false, mobile_apis::Result::REJECTED); + return; + } + + app->set_vr_help_title( + msg_params.getElement(strings::vr_help_title)); + app->set_vr_help( + msg_params.getElement(strings::vr_help)); + + smart_objects::SmartObject params = + smart_objects::SmartObject(smart_objects::SmartType_Map); + + params[strings::vr_help_title] = (*app->vr_help_title()); + params[strings::vr_help] = (*app->vr_help()); + params[strings::app_id] = app->app_id(); + if (is_menu_title_present) { + + params[hmi_request::menu_title] = + msg_params[hmi_request::menu_title].asString(); + } + if (is_menu_icon_present) { + + params[hmi_request::menu_icon] = + msg_params[hmi_request::menu_icon]; + } + if (is_keyboard_props_present) { + + params[hmi_request::keyboard_properties] = + msg_params[hmi_request::keyboard_properties]; + } + + SendHMIRequest(hmi_apis::FunctionID::UI_SetGlobalProperties, + ¶ms, true); + } else if (!is_vr_help_title_present && !is_vr_help_present) { + const CommandsMap& cmdMap = app->commands_map(); + CommandsMap::const_iterator command_it = cmdMap.begin(); + + int32_t index = 0; + smart_objects::SmartObject vr_help_items; + for (; cmdMap.end() != command_it; ++command_it) { + if (false == (*command_it->second).keyExists(strings::vr_commands)) { + LOG4CXX_ERROR(logger_, "VR synonyms are empty"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + // use only first + vr_help_items[index][strings::position] = (index + 1); + vr_help_items[index++][strings::text] = + (*command_it->second)[strings::vr_commands][0]; + } + + app->set_vr_help_title(smart_objects::SmartObject(app->name())); + app->set_vr_help(vr_help_items); + + smart_objects::SmartObject params = + smart_objects::SmartObject(smart_objects::SmartType_Map); + + params[strings::vr_help_title] = (*app->vr_help_title()); + params[strings::vr_help] = (*app->vr_help()); + params[strings::app_id] = app->app_id(); + if (is_menu_title_present) { + + params[hmi_request::menu_title] = + msg_params[hmi_request::menu_title].asString(); + } + if (is_menu_icon_present) { + + params[hmi_request::menu_icon] = + msg_params[hmi_request::menu_icon]; + } + if (is_keyboard_props_present) { + + params[hmi_request::keyboard_properties] = + msg_params[hmi_request::keyboard_properties]; + } + + SendHMIRequest(hmi_apis::FunctionID::UI_SetGlobalProperties, + ¶ms, true); + } else { + LOG4CXX_ERROR(logger_, "Request rejected"); + SendResponse(false, mobile_apis::Result::REJECTED); + return; + } + + // check TTS params + if (is_help_prompt_present || is_timeout_prompt_present) { + smart_objects::SmartObject params = + smart_objects::SmartObject(smart_objects::SmartType_Map); + + if (is_help_prompt_present) { + app->set_help_prompt( + msg_params.getElement(strings::help_prompt)); + params[strings::help_prompt] = (*app->help_prompt()); + } + + if (is_timeout_prompt_present) { + app->set_timeout_prompt( + msg_params.getElement(strings::timeout_prompt)); + params[strings::timeout_prompt] = (*app->timeout_prompt()); + } + + params[strings::app_id] = app->app_id(); + + SendHMIRequest(hmi_apis::FunctionID::TTS_SetGlobalProperties, + ¶ms, true); + } +} + +bool SetGlobalPropertiesRequest::CheckVrHelpItemsOrder() { + const smart_objects::SmartObject vr_help = (*message_)[strings::msg_params] + .getElement(strings::vr_help); + + // vr help item start position must be 1 + const uint32_t vr_help_item_start_position = 1; + + if (vr_help_item_start_position != + vr_help.getElement(0).getElement(strings::position).asUInt()) { + LOG4CXX_ERROR(logger_, "VR help items start position is wrong"); + return false; + } + + // Check if VR Help Items contains sequential positionss + size_t i = 0; + for (size_t j = 1; j < vr_help.length(); ++i, ++j) { + if ((vr_help.getElement(i).getElement(strings::position).asInt() + 1) + != vr_help.getElement(j).getElement(strings::position).asInt()) { + LOG4CXX_ERROR(logger_, "VR help items order is wrong"); + return false; + } + } + + return true; +} + +void SetGlobalPropertiesRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "SetGlobalPropertiesRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(CommandRequestImpl::connection_key()); + + switch (event.id()) { + case hmi_apis::FunctionID::UI_SetGlobalProperties: { + LOG4CXX_INFO(logger_, "Received UI_SetGlobalProperties event"); + is_ui_received_ = true; + ui_result_ = static_cast<hmi_apis::Common_Result::eType>( + message[strings::params][hmi_response::code].asInt()); + break; + } + case hmi_apis::FunctionID::TTS_SetGlobalProperties: { + LOG4CXX_INFO(logger_, "Received TTS_SetGlobalProperties event"); + is_tts_received_ = true; + tts_result_ = static_cast<hmi_apis::Common_Result::eType>( + message[strings::params][hmi_response::code].asInt()); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + return; + } + } + + if (!IsPendingResponseExist()) { + bool result = ((hmi_apis::Common_Result::SUCCESS == ui_result_) + && (hmi_apis::Common_Result::SUCCESS == tts_result_ || + hmi_apis::Common_Result::UNSUPPORTED_RESOURCE == tts_result_)) + || ((hmi_apis::Common_Result::SUCCESS == ui_result_) + && (hmi_apis::Common_Result::INVALID_ENUM == tts_result_)) + || ((hmi_apis::Common_Result::INVALID_ENUM == ui_result_) + && (hmi_apis::Common_Result::SUCCESS == tts_result_)); + + mobile_apis::Result::eType result_code; + const char* return_info = NULL; + + if (result) { + if (hmi_apis::Common_Result::UNSUPPORTED_RESOURCE == tts_result_) { + result_code = mobile_apis::Result::WARNINGS; + return_info = + std::string("Unsupported phoneme type sent in a prompt").c_str(); + } else { + result_code = static_cast<mobile_apis::Result::eType>( + std::max(ui_result_, tts_result_)); + } + } else { + result_code = static_cast<mobile_apis::Result::eType>( + std::max(ui_result_, tts_result_)); + } + + ApplicationSharedPtr application = + ApplicationManagerImpl::instance()->application(connection_key()); + SendResponse(result, static_cast<mobile_apis::Result::eType>(result_code), + return_info, &(message[strings::msg_params])); + application->UpdateHash(); + } +} + +bool SetGlobalPropertiesRequest::IsPendingResponseExist() { + + return is_ui_send_ != is_ui_received_ || is_tts_send_ != is_tts_received_; +} + +bool SetGlobalPropertiesRequest::ValidateConditionalMandatoryParameters( + const smart_objects::SmartObject& params) { + return params.keyExists(strings::help_prompt) + || params.keyExists(strings::timeout_prompt) + || params.keyExists(strings::vr_help_title) + || params.keyExists(strings::vr_help) + || params.keyExists(strings::menu_title) + || params.keyExists(strings::menu_icon) + || params.keyExists(strings::keyboard_properties); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_global_properties_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_global_properties_response.cc new file mode 100644 index 000000000..5f0b62fb4 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_global_properties_response.cc @@ -0,0 +1,58 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/set_global_properties_response.h" +#include "application_manager/application_manager_impl.h" + + +namespace application_manager { + +namespace commands { + +SetGlobalPropertiesResponse::SetGlobalPropertiesResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +SetGlobalPropertiesResponse::~SetGlobalPropertiesResponse() { +} + +void SetGlobalPropertiesResponse::Run() { + LOG4CXX_INFO(logger_, "SetGlobalPropertiesResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_icon_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_icon_request.cc new file mode 100644 index 000000000..73dc1bd0f --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_icon_request.cc @@ -0,0 +1,139 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/set_icon_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" +#include "utils/file_system.h" + +namespace application_manager { + +namespace commands { + +SetIconRequest::SetIconRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +SetIconRequest::~SetIconRequest() { +} + +void SetIconRequest::Run() { + LOG4CXX_INFO(logger_, "SetIconRequest::Run"); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + + if (!app) { + LOG4CXX_ERROR(logger_, "Application is not registered"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + const std::string& sync_file_name = + (*message_)[strings::msg_params][strings::sync_file_name].asString(); + + std::string relative_file_path = app->name(); + relative_file_path += "/"; + relative_file_path += sync_file_name; + + std::string full_file_path = file_system::FullPath(relative_file_path); + + if (!file_system::FileExists(full_file_path)) { + LOG4CXX_ERROR(logger_, "No such file"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + msg_params[strings::app_id] = app->app_id(); + msg_params[strings::sync_file_name] = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + const std::string full_file_path_for_hmi = file_system::ConvertPathForURL( + full_file_path); + + msg_params[strings::sync_file_name][strings::value] = full_file_path_for_hmi; + + // TODO(VS): research why is image_type hardcoded + msg_params[strings::sync_file_name][strings::image_type] = + static_cast<int32_t> (SetIconRequest::ImageType::DYNAMIC); + + // for further use in on_event function + (*message_)[strings::msg_params][strings::sync_file_name] = + msg_params[strings::sync_file_name]; + + SendHMIRequest(hmi_apis::FunctionID::UI_SetAppIcon, &msg_params, true); +} + +void SetIconRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "SetIconRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::UI_SetAppIcon: { + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + bool result = mobile_apis::Result::SUCCESS == result_code; + + if (result) { + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + connection_key()); + + const std::string path = (*message_)[strings::msg_params] + [strings::sync_file_name] + [strings::value].asString(); + app->set_app_icon_path(path); + + LOG4CXX_INFO(logger_, + "Icon path was set to '" << app->app_icon_path() << "'"); + } + + SendResponse(result, result_code, NULL, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + return; + } + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_icon_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_icon_response.cc new file mode 100644 index 000000000..f1580823d --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_icon_response.cc @@ -0,0 +1,56 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/set_icon_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +SetIconResponse::SetIconResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +SetIconResponse::~SetIconResponse() { +} + +void SetIconResponse::Run() { + LOG4CXX_INFO(logger_, "SetIconResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_media_clock_timer_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_media_clock_timer_request.cc new file mode 100644 index 000000000..7daddce7a --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_media_clock_timer_request.cc @@ -0,0 +1,149 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/set_media_clock_timer_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +SetMediaClockRequest::SetMediaClockRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +SetMediaClockRequest::~SetMediaClockRequest() { +} + +void SetMediaClockRequest::Run() { + LOG4CXX_INFO(logger_, "SetMediaClockRequest::Run"); + + uint32_t app_id = (*message_)[strings::params][strings::connection_key] + .asUInt(); + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + + if (!app) { + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + LOG4CXX_ERROR(logger_, "Application is not registered"); + return; + } + + if (!app->is_media_application()) { + LOG4CXX_ERROR(logger_, "Application is not media application"); + SendResponse(false, mobile_apis::Result::REJECTED); + return; + } + + if (isDataValid()) { + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + // copy entirely msg + msg_params = (*message_)[strings::msg_params]; + msg_params[strings::app_id] = app->app_id(); + + SendHMIRequest(hmi_apis::FunctionID::UI_SetMediaClockTimer, &msg_params, true); + } else { + SendResponse(false, mobile_apis::Result::INVALID_DATA); + } +} + +void SetMediaClockRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "SetMediaClockRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::UI_SetMediaClockTimer: { + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + bool result = mobile_apis::Result::SUCCESS == result_code; + + SendResponse(result, result_code, NULL, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + return; + } + } +} + +bool SetMediaClockRequest::isDataValid() { + if (!(*message_)[strings::msg_params].keyExists(strings::start_time) + && ((*message_)[strings::msg_params][strings::update_mode] + == mobile_apis::UpdateMode::COUNTUP + || (*message_)[strings::msg_params][strings::update_mode] + == mobile_apis::UpdateMode::COUNTDOWN)) { + LOG4CXX_INFO(logger_, "Data is invalid"); + return false; + } else if (((*message_)[strings::msg_params].keyExists(strings::start_time)) + && ((*message_)[strings::msg_params][strings::update_mode] + == mobile_apis::UpdateMode::COUNTUP + || (*message_)[strings::msg_params][strings::update_mode] + == mobile_apis::UpdateMode::COUNTDOWN) && + ((*message_)[strings::msg_params].keyExists(strings::end_time))) { + unsigned int start_time_in_seconds = 0; + unsigned int end_time_in_seconds = 0; + start_time_in_seconds = ((*message_)[strings::msg_params] + [strings::start_time][strings::hours].asUInt()) * 3600; + start_time_in_seconds += ((*message_)[strings::msg_params] + [strings::start_time][strings::minutes].asUInt()) * 60; + start_time_in_seconds += ((*message_)[strings::msg_params] + [strings::start_time][strings::seconds].asUInt()); + end_time_in_seconds = ((*message_)[strings::msg_params] + [strings::end_time][strings::hours].asUInt()) * 3600; + end_time_in_seconds += ((*message_)[strings::msg_params] + [strings::end_time][strings::minutes].asUInt()) * 60; + end_time_in_seconds += ((*message_)[strings::msg_params] + [strings::end_time][strings::seconds].asUInt()); + if (((end_time_in_seconds > start_time_in_seconds) && + ((*message_)[strings::msg_params][strings::update_mode] == + mobile_apis::UpdateMode::COUNTDOWN)) || + ((end_time_in_seconds < start_time_in_seconds) && + ((*message_)[strings::msg_params][strings::update_mode] == + mobile_apis::UpdateMode::COUNTUP))) { + LOG4CXX_INFO(logger_, "Data is invalid"); + return false; + } + } + LOG4CXX_INFO(logger_, "Data is valid"); + return true; +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_media_clock_timer_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_media_clock_timer_response.cc new file mode 100644 index 000000000..73923b002 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_media_clock_timer_response.cc @@ -0,0 +1,57 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/set_media_clock_timer_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +SetMediaClockTimerResponse::SetMediaClockTimerResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +SetMediaClockTimerResponse::~SetMediaClockTimerResponse() { +} + +void SetMediaClockTimerResponse::Run() { + LOG4CXX_INFO(logger_, "SetMediaClockTimerResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/show_constant_tbt_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/show_constant_tbt_request.cc new file mode 100644 index 000000000..27cb9f52a --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/show_constant_tbt_request.cc @@ -0,0 +1,192 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/show_constant_tbt_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +ShowConstantTBTRequest::ShowConstantTBTRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message), + result_(mobile_apis::Result::INVALID_ENUM) { +} + +ShowConstantTBTRequest::~ShowConstantTBTRequest() { +} + +void ShowConstantTBTRequest::Run() { + LOG4CXX_INFO(logger_, "ShowConstantTBTRequest::Run"); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + + if (!app) { + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + LOG4CXX_ERROR(logger_, "Application is not registered"); + return; + } + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params = (*message_)[strings::msg_params]; + + // TODO(DK): Missing mandatory param + if (!msg_params.keyExists(strings::soft_buttons)) { + SendResponse(false, mobile_apis::Result::INVALID_DATA); + LOG4CXX_ERROR(logger_, "INVALID_DATA"); + return; + } + + mobile_apis::Result::eType processing_result = + MessageHelper::ProcessSoftButtons(msg_params, app); + + if (mobile_apis::Result::SUCCESS != processing_result) { + if (mobile_apis::Result::INVALID_DATA == processing_result) { + LOG4CXX_ERROR(logger_, "INVALID_DATA!"); + SendResponse(false, processing_result); + return; + } + if (mobile_apis::Result::UNSUPPORTED_RESOURCE == processing_result) { + LOG4CXX_ERROR(logger_, "UNSUPPORTED_RESOURCE!"); + result_ = processing_result; + } + } + + mobile_apis::Result::eType verification_result = + MessageHelper::VerifyImageFiles(msg_params, app); + + if (mobile_apis::Result::SUCCESS != verification_result) { + if (mobile_apis::Result::INVALID_DATA == verification_result) { + LOG4CXX_ERROR(logger_, "VerifyImageFiles INVALID_DATA!"); + SendResponse(false, verification_result); + return; + } + if (mobile_apis::Result::UNSUPPORTED_RESOURCE == verification_result) { + LOG4CXX_ERROR(logger_, "VerifyImageFiles UNSUPPORTED_RESOURCE!"); + result_ = verification_result; + } + } + + msg_params[strings::app_id] = app->app_id(); + + msg_params[hmi_request::navi_texts] = smart_objects::SmartObject( + smart_objects::SmartType_Array); + + int32_t index = 0; + if (msg_params.keyExists(strings::navigation_text_1)) { + // erase useless parametr + msg_params.erase(strings::navigation_text_1); + msg_params[hmi_request::navi_texts][index][hmi_request::field_name] = + static_cast<int32_t>(application_manager::TextFieldName::NAVI_TEXT1); + msg_params[hmi_request::navi_texts][index++][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::navigation_text_1]; + } + + if (msg_params.keyExists(strings::navigation_text_2)) { + // erase useless param + msg_params.erase(strings::navigation_text_2); + msg_params[hmi_request::navi_texts][index][hmi_request::field_name] = + static_cast<int32_t>(application_manager::TextFieldName::NAVI_TEXT2); + msg_params[hmi_request::navi_texts][index++][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::navigation_text_2]; + } + + if (msg_params.keyExists(strings::eta)) { + // erase useless param + msg_params.erase(strings::eta); + msg_params[hmi_request::navi_texts][index][hmi_request::field_name] = + static_cast<int32_t>(application_manager::TextFieldName::ETA); + msg_params[hmi_request::navi_texts][index++][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::eta]; + } + + if (msg_params.keyExists(strings::total_distance)) { + // erase useless param + msg_params.erase(strings::total_distance); + msg_params[hmi_request::navi_texts][index][hmi_request::field_name] = + static_cast<int32_t>(application_manager::TextFieldName::TOTAL_DISTANCE); + msg_params[hmi_request::navi_texts][index++][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::total_distance]; + } + + if (msg_params.keyExists(strings::time_to_destination)) { + // erase useless param + msg_params.erase(strings::time_to_destination); + msg_params[hmi_request::navi_texts][index][hmi_request::field_name] = + static_cast<int32_t>(hmi_apis::Common_TextFieldName::timeToDestination); + msg_params[hmi_request::navi_texts][index++][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::time_to_destination]; + } + + app->set_tbt_show_command(msg_params); + SendHMIRequest(hmi_apis::FunctionID::Navigation_ShowConstantTBT, &msg_params, + true); +} + + +void ShowConstantTBTRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "ShowConstantTBTRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::Navigation_ShowConstantTBT: { + LOG4CXX_INFO(logger_, "Received Navigation_ShowConstantTBT event"); + + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + bool result = mobile_apis::Result::SUCCESS == result_code; + if (mobile_apis::Result::INVALID_ENUM != result_) { + result_code = result_; + } + + SendResponse(result, result_code, NULL, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_,"Received unknown event" << event.id()); + break; + } + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/show_constant_tbt_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/show_constant_tbt_response.cc new file mode 100644 index 000000000..d5539d148 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/show_constant_tbt_response.cc @@ -0,0 +1,58 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/show_constant_tbt_response.h" +#include "application_manager/application_manager_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +ShowConstantTBTResponse::ShowConstantTBTResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +ShowConstantTBTResponse::~ShowConstantTBTResponse() { +} + +void ShowConstantTBTResponse::Run() { + LOG4CXX_INFO(logger_, "ShowConstantTBTResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/show_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/show_request.cc new file mode 100644 index 000000000..bde57429e --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/show_request.cc @@ -0,0 +1,261 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/show_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application.h" +#include "application_manager/message_helper.h" +#include "utils/file_system.h" + +namespace application_manager { + +namespace commands { + +ShowRequest::ShowRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message), + result_(mobile_apis::Result::INVALID_ENUM) { +} + +ShowRequest::~ShowRequest() { +} + +void ShowRequest::Run() { + LOG4CXX_INFO(logger_, "ShowRequest::Run"); + + ApplicationSharedPtr app = application_manager::ApplicationManagerImpl::instance() + ->application( + (*message_)[strings::params][strings::connection_key].asInt()); + + if (!app) { + LOG4CXX_ERROR_EXT( + logger_, "An application " << app->name() << " is not registered."); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + mobile_apis::Result::eType processing_result = + MessageHelper::ProcessSoftButtons((*message_)[strings::msg_params], app); + + if (mobile_apis::Result::SUCCESS != processing_result) { + if (mobile_apis::Result::INVALID_DATA == processing_result) { + LOG4CXX_ERROR(logger_, "INVALID_DATA!"); + SendResponse(false, processing_result); + return; + } + if (mobile_apis::Result::UNSUPPORTED_RESOURCE == processing_result) { + LOG4CXX_ERROR(logger_, "UNSUPPORTED_RESOURCE!"); + result_ = processing_result; + } + } + + mobile_apis::Result::eType verification_result = + MessageHelper::VerifyImageFiles((*message_)[strings::msg_params], app); + + if (mobile_apis::Result::SUCCESS != verification_result) { + if (mobile_apis::Result::INVALID_DATA == verification_result) { + LOG4CXX_ERROR(logger_, "VerifyImageFiles INVALID_DATA!"); + SendResponse(false, verification_result); + return; + } + if (mobile_apis::Result::UNSUPPORTED_RESOURCE == verification_result) { + LOG4CXX_ERROR(logger_, "VerifyImageFiles UNSUPPORTED_RESOURCE!"); + result_ = verification_result; + } + } + + if (!CheckMenuFieldsNames()) { + LOG4CXX_ERROR(logger_, "Bad menu name"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::app_id] = app->app_id(); + + msg_params[hmi_request::show_strings] = smart_objects::SmartObject( + smart_objects::SmartType_Array); + + int32_t index = 0; + if ((*message_)[strings::msg_params].keyExists(strings::main_field_1)) { + msg_params[hmi_request::show_strings][index][hmi_request::field_name] = + static_cast<int32_t>(application_manager::TextFieldName::MAIN_FILED1); + msg_params[hmi_request::show_strings][index][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::main_field_1]; + ++index; + } + + if ((*message_)[strings::msg_params].keyExists(strings::main_field_2)) { + msg_params[hmi_request::show_strings][index][hmi_request::field_name] = + static_cast<int32_t>(application_manager::TextFieldName::MAIN_FILED2); + msg_params[hmi_request::show_strings][index][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::main_field_2]; + ++index; + } + + if ((*message_)[strings::msg_params].keyExists(strings::main_field_3)) { + msg_params[hmi_request::show_strings][index][hmi_request::field_name] = + static_cast<int32_t>(application_manager::TextFieldName::MAIN_FILED3); + msg_params[hmi_request::show_strings][index][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::main_field_3]; + ++index; + } + + if ((*message_)[strings::msg_params].keyExists(strings::main_field_4)) { + msg_params[hmi_request::show_strings][index][hmi_request::field_name] = + static_cast<int32_t>(application_manager::TextFieldName::MAIN_FILED4); + msg_params[hmi_request::show_strings][index][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::main_field_4]; + ++index; + } + + if ((*message_)[strings::msg_params].keyExists(strings::media_clock)) { + msg_params[hmi_request::show_strings][index][hmi_request::field_name] = + static_cast<int32_t>(application_manager::TextFieldName::MEDIA_CLOCK); + msg_params[hmi_request::show_strings][index][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::media_clock]; + ++index; + } + + if ((*message_)[strings::msg_params].keyExists(strings::media_track)) { + msg_params[hmi_request::show_strings][index][hmi_request::field_name] = + static_cast<int32_t>(application_manager::TextFieldName::MEDIA_TRACK); + msg_params[hmi_request::show_strings][index][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::media_track]; + ++index; + } + + if ((*message_)[strings::msg_params].keyExists(strings::status_bar)) { + msg_params[hmi_request::show_strings][index][hmi_request::field_name] = + static_cast<int32_t>(application_manager::TextFieldName::STATUS_BAR); + msg_params[hmi_request::show_strings][index][hmi_request::field_text] = + (*message_)[strings::msg_params][strings::status_bar]; + ++index; + } + + if ((*message_)[strings::msg_params].keyExists(strings::alignment)) { + msg_params[strings::alignment] = + (*message_)[strings::msg_params][strings::alignment]; + } + + if ((*message_)[strings::msg_params].keyExists(strings::graphic)) { + msg_params[strings::graphic] = + (*message_)[strings::msg_params][strings::graphic]; + } + + if ((*message_)[strings::msg_params].keyExists(strings::secondary_graphic)) { + msg_params[strings::secondary_graphic] = + (*message_)[strings::msg_params][strings::secondary_graphic]; + } + + if ((*message_)[strings::msg_params].keyExists(strings::soft_buttons)) { + msg_params[strings::soft_buttons] = + (*message_)[strings::msg_params][strings::soft_buttons]; + } + + if ((*message_)[strings::msg_params].keyExists(strings::custom_presets)) { + msg_params[strings::custom_presets] = + (*message_)[strings::msg_params][strings::custom_presets]; + } + + SendHMIRequest(hmi_apis::FunctionID::UI_Show, &msg_params, true); + + MessageSharedPtr persistentData = new smart_objects::SmartObject(msg_params); + app->set_show_command(*persistentData); +} + +void ShowRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "ShowRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::UI_Show: { + LOG4CXX_INFO(logger_, "Received UI_Show event"); + + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + bool result = mobile_apis::Result::SUCCESS == result_code; + if (mobile_apis::Result::INVALID_ENUM != result_) { + result_code = result_; + } + + SendResponse(result, result_code, NULL, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_,"Received unknown event" << event.id()); + break; + } + } +} + +bool ShowRequest::CheckMenuFieldsNames() { + if ((*message_)[strings::msg_params].keyExists(strings::main_field_4)) { + const std::string& str = (*message_)[strings::msg_params] + [strings::main_field_4].asString(); + if (!CheckSyntax(str, true)) { + LOG4CXX_INFO(logger_, "main_field_4 syntax check failed"); + return false; + } + } + if ((*message_)[strings::msg_params].keyExists(strings::main_field_3)) { + const std::string& str = (*message_)[strings::msg_params] + [strings::main_field_3].asString(); + if (!CheckSyntax(str, true)) { + LOG4CXX_INFO(logger_, "main_field_3 syntax check failed"); + return false; + } + } + if ((*message_)[strings::msg_params].keyExists(strings::main_field_2)) { + const std::string& str = (*message_)[strings::msg_params] + [strings::main_field_2].asString(); + if (!CheckSyntax(str, true)) { + LOG4CXX_INFO(logger_, "main_field_2 syntax check failed"); + return false; + } + } + if ((*message_)[strings::msg_params].keyExists(strings::main_field_1)) { + const std::string& str = (*message_)[strings::msg_params] + [strings::main_field_1].asString(); + if (!CheckSyntax(str, true)) { + LOG4CXX_INFO(logger_, "main_field_1 syntax check failed"); + return false; + } + } + return true; +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/show_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/show_response.cc new file mode 100644 index 000000000..1f9c59c6f --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/show_response.cc @@ -0,0 +1,58 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/show_response.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +ShowResponse::ShowResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +ShowResponse::~ShowResponse() { +} + +void ShowResponse::Run() { + LOG4CXX_INFO(logger_, "ShowResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/slider_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/slider_request.cc new file mode 100644 index 000000000..6e0646262 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/slider_request.cc @@ -0,0 +1,148 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/slider_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +namespace commands { + +SliderRequest::SliderRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { + subscribe_on_event(hmi_apis::FunctionID::UI_OnResetTimeout); +} + +SliderRequest::~SliderRequest() { +} + +bool SliderRequest::Init() { + + /* Timeout in milliseconds. + If omitted a standard value of 10000 milliseconds is used.*/ + if ((*message_)[strings::msg_params].keyExists(strings::timeout)) { + default_timeout_ = + (*message_)[strings::msg_params][strings::timeout].asUInt(); + } + + return true; +} + +void SliderRequest::Run() { + LOG4CXX_INFO(logger_, "SliderRequest::Run"); + + ApplicationSharedPtr application = + application_manager::ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + + if (!application) { + LOG4CXX_ERROR(logger_, "Application is not registered"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + if ((*message_)[strings::msg_params][strings::num_ticks].asInt() + < (*message_)[strings::msg_params][strings::position].asInt()) { + LOG4CXX_ERROR(logger_, "INVALID_DATA"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + + if ((*message_)[strings::msg_params].keyExists(strings::slider_footer)) { + if (1 < (*message_)[strings::msg_params][strings::slider_footer].length()) { + if ((*message_)[strings::msg_params][strings::num_ticks].asInt() + != (*message_)[strings::msg_params] + [strings::slider_footer].length()) { + LOG4CXX_ERROR(logger_, "INVALID_DATA"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + } + } + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params = (*message_)[strings::msg_params]; + msg_params[strings::app_id] = application->app_id(); + + if (!(*message_)[strings::msg_params].keyExists(strings::timeout)) { + msg_params[strings::timeout] = default_timeout_; + } + + SendHMIRequest(hmi_apis::FunctionID::UI_Slider, &msg_params, true); +} + +void SliderRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "SliderRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + const event_engine::Event::EventID event_id = event.id(); + if (event_id == hmi_apis::FunctionID::UI_OnResetTimeout) { + LOG4CXX_INFO(logger_, "Received UI_OnResetTimeout event"); + ApplicationManagerImpl::instance()->updateRequestTimeout(connection_key(), + correlation_id(), + default_timeout()); + return; + } + if (event_id != hmi_apis::FunctionID::UI_Slider) { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + return; + } + + //event_id == hmi_apis::FunctionID::UI_Slider: + LOG4CXX_INFO(logger_, "Received UI_Slider event"); + + const int response_code = + message[strings::params][hmi_response::code].asInt(); + + smart_objects::SmartObject response_msg_params = message[strings::msg_params]; + if (response_code == hmi_apis::Common_Result::ABORTED) + //Copy slider_position info to msg_params section + response_msg_params[strings::slider_position] = + message[strings::params][strings::data][strings::slider_position]; + + const bool is_response_success = + (mobile_apis::Result::SUCCESS == response_code) || + //Aborted has slider_position data + (mobile_apis::Result::ABORTED == response_code); + + SendResponse(is_response_success, + mobile_apis::Result::eType(response_code), + 0, + &response_msg_params); +} + +} // namespace commands +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/slider_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/slider_response.cc new file mode 100644 index 000000000..bfb6b0a1e --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/slider_response.cc @@ -0,0 +1,56 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/slider_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +SliderResponse::SliderResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +SliderResponse::~SliderResponse() { +} + +void SliderResponse::Run() { + LOG4CXX_INFO(logger_, "SliderResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/speak_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/speak_request.cc new file mode 100644 index 000000000..05e4b2310 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/speak_request.cc @@ -0,0 +1,120 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/speak_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +namespace commands { + +SpeakRequest::SpeakRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +SpeakRequest::~SpeakRequest() { +} + +void SpeakRequest::Run() { + LOG4CXX_INFO(logger_, "SpeakRequest::Run"); + + ApplicationSharedPtr app = application_manager::ApplicationManagerImpl::instance() + ->application(connection_key()); + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "NULL pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + (*message_)[strings::msg_params][strings::app_id] = app->app_id(); + SendHMIRequest(hmi_apis::FunctionID::TTS_Speak, + &message_->getElement(strings::msg_params), true); +} + +void SpeakRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "SpeakRequest::on_event"); + switch (event.id()) { + case hmi_apis::FunctionID::TTS_Speak: { + LOG4CXX_INFO(logger_, "Received TTS_Speak event"); + + ProcessTTSSpeakResponse(event.smart_object()); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + break; + } + } +} + +void SpeakRequest::ProcessTTSSpeakResponse( + const smart_objects::SmartObject& message) { + LOG4CXX_INFO(logger_, "SpeakRequest::ProcessTTSSpeakResponse"); + ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application( + connection_key()); + + if (!application) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + return; + } + + bool result = false; + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + if (hmi_apis::Common_Result::SUCCESS == + static_cast<hmi_apis::Common_Result::eType>(result_code)) { + result = true; + } + (*message_)[strings::params][strings::function_id] = + mobile_apis::FunctionID::SpeakID; + + const char* return_info = NULL; + + if (result) { + if (hmi_apis::Common_Result::UNSUPPORTED_RESOURCE == + static_cast<hmi_apis::Common_Result::eType>(result_code)) { + result_code = mobile_apis::Result::WARNINGS; + return_info = std::string("Unsupported phoneme type sent in a prompt").c_str(); + } + } + + SendResponse(result, static_cast<mobile_apis::Result::eType>(result_code), + return_info, &(message[strings::msg_params])); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/speak_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/speak_response.cc new file mode 100644 index 000000000..92b85bbb8 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/speak_response.cc @@ -0,0 +1,58 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/speak_response.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +SpeakResponse::SpeakResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +SpeakResponse::~SpeakResponse() { +} + +void SpeakResponse::Run() { + LOG4CXX_INFO(logger_, "SpeakResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_button_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_button_request.cc new file mode 100644 index 000000000..9d014a25d --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_button_request.cc @@ -0,0 +1,80 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/subscribe_button_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +namespace commands { + +namespace str = strings; + +SubscribeButtonRequest::SubscribeButtonRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +SubscribeButtonRequest::~SubscribeButtonRequest() { +} + +void SubscribeButtonRequest::Run() { + LOG4CXX_INFO(logger_, "SubscribeButtonRequest::Run"); + + uint32_t app_id = (*message_)[strings::params][strings::connection_key].asUInt(); + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "APPLICATION_NOT_REGISTERED"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + const uint32_t btn_id = ((*message_)[str::msg_params][str::button_name] + .asUInt()); + + if (app->IsSubscribedToButton(static_cast<mobile_apis::ButtonName::eType>(btn_id))) { + LOG4CXX_ERROR_EXT(logger_, "Already subscribed to button " << btn_id); + SendResponse(false, mobile_apis::Result::IGNORED); + return; + } + + app->SubscribeToButton(static_cast<mobile_apis::ButtonName::eType>(btn_id)); + SendResponse(true, mobile_apis::Result::SUCCESS); + + app->UpdateHash(); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_button_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_button_response.cc new file mode 100644 index 000000000..6253f8ca3 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_button_response.cc @@ -0,0 +1,66 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/subscribe_button_response.h" + +namespace application_manager { + +namespace commands { + +SubscribeButtonResponse::SubscribeButtonResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +SubscribeButtonResponse::~SubscribeButtonResponse() { +} + +void SubscribeButtonResponse::Run() { + LOG4CXX_INFO(logger_, "SubscribeButtonResponse::Run"); + + // check if response false + if (true == (*message_)[strings::msg_params].keyExists(strings::success)) { + if ((*message_)[strings::msg_params][strings::success].asBool() == false) { + LOG4CXX_ERROR(logger_, "Success = false"); + SendResponse(false); + return; + } + } + + // TODO(DK): Some logic + SendResponse(true); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_request.cc new file mode 100644 index 000000000..8c427bea1 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_request.cc @@ -0,0 +1,276 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/subscribe_vehicle_data_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" + +namespace application_manager { +namespace commands { + +SubscribeVehicleDataRequest::SubscribeVehicleDataRequest( + const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +SubscribeVehicleDataRequest::~SubscribeVehicleDataRequest() { +} + +#ifdef QT_HMI +namespace { + struct Subrequest { + hmi_apis::FunctionID::eType func_id; + const char* str; + }; + Subrequest subrequests[] = { + { hmi_apis::FunctionID::VehicleInfo_SubscribeGps, strings::gps}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed, strings::speed}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeRpm, strings::rpm}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel, strings::fuel_level}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel_State, strings::fuel_level_state}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeInstantFuelConsumption, strings::instant_fuel_consumption}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeExternalTemperature, strings::external_temp}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeVin, strings::vin}, + { hmi_apis::FunctionID::VehicleInfo_SubscribePrndl, strings::prndl}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeTirePressure, strings::tire_pressure}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeOdometer, strings::odometer}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeBeltStatus, strings::belt_status}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeBodyInformation, strings::body_information}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeDeviceStatus, strings::device_status}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeDriverBraking, strings::driver_braking}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeWiperStatus, strings::wiper_status}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeHeadLampStatus, strings::head_lamp_status}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeEngineTorque, strings::engine_torque}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeAccPedalPosition, strings::acc_pedal_pos}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeSteeringWheelAngle, strings::steering_wheel_angle}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeECallInfo, strings::e_call_info}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeAirbagStatus, strings::airbag_status}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeEmergencyEvent, strings::emergency_event}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeClusterModeStatus, strings::cluster_mode_status}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey, strings::my_key}, + }; +} +#endif // #ifdef QT_HMI + +void SubscribeVehicleDataRequest::Run() { + LOG4CXX_INFO(logger_, "SubscribeVehicleDataRequest::Run"); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + CommandRequestImpl::connection_key()); + + if (!app) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + // counter for items to subscribe + int32_t items_to_subscribe = 0; + // counter for subscribed items by application + int32_t subscribed_items = 0; + + const VehicleData& vehicle_data = MessageHelper::vehicle_data(); + VehicleData::const_iterator it = vehicle_data.begin(); + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + msg_params[strings::app_id] = app->app_id(); + + for (; vehicle_data.end() != it; ++it) { + std::string key_name = it->first; + if ((*message_)[strings::msg_params].keyExists(key_name)) { + bool is_key_enabled = (*message_)[strings::msg_params][key_name].asBool(); + if (is_key_enabled) { + ++items_to_subscribe; + msg_params[key_name] = is_key_enabled; + + VehicleDataType key_type = it->second; + if (app->SubscribeToIVI(static_cast<uint32_t>(key_type))) { + ++subscribed_items; + } + } + } + } + + if (0 == items_to_subscribe) { + SendResponse(false, + mobile_apis::Result::INVALID_DATA, + "No data in the request"); + return; + } else if (0 == subscribed_items) { + SendResponse(false, + mobile_apis::Result::IGNORED, + "Already subscribed on provided VehicleData"); + return; + } +#ifdef WEB_HMI + SendHMIRequest(hmi_apis::FunctionID::VehicleInfo_SubscribeVehicleData, + &msg_params, true); +#endif // #ifdef WEB_HMI + +#ifdef QT_HMI + //Generate list of subrequests + for (int i = 0; i < sizeof(subrequests) / sizeof(subrequests[0]); ++i) { + const Subrequest& sr = subrequests[i]; + if (true == (*message_)[strings::msg_params].keyExists(sr.str) + && true == (*message_)[strings::msg_params][sr.str].asBool()) { + HmiRequest hmi_request; + hmi_request.str = sr.str; + hmi_request.func_id = sr.func_id; + hmi_request.complete = false; + hmi_requests_.push_back(hmi_request); + } + } + LOG4CXX_INFO(logger_, hmi_requests_.size() << " requests are going to be sent to HMI"); + + //Send subrequests + for (HmiRequests::const_iterator it = hmi_requests_.begin(); it != hmi_requests_.end(); ++it) + SendHMIRequest(it->func_id, &msg_params, true); +#endif // #ifdef QT_HMI +} + +void SubscribeVehicleDataRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "SubscribeVehicleDataRequest::on_event"); + + const smart_objects::SmartObject& message = event.smart_object(); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + CommandRequestImpl::connection_key()); + +#ifdef WEB_HMI + hmi_apis::Common_Result::eType hmi_result = + static_cast<hmi_apis::Common_Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + bool result = + hmi_result == hmi_apis::Common_Result::SUCCESS; + + mobile_apis::Result::eType result_code = + hmi_result == hmi_apis::Common_Result::SUCCESS + ? mobile_apis::Result::SUCCESS + : static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + const char* return_info = NULL; + if (result) { + if (IsAnythingAlreadySubscribed()) { + result_code = mobile_apis::Result::WARNINGS; + return_info = + std::string("Unsupported phoneme type sent in a prompt").c_str(); + } + } + + SendResponse(result, + result_code, + return_info, + &(message[strings::msg_params])); + app->UpdateHash(); +#endif // #ifdef WEB_HMI +#ifdef QT_HMI + for (HmiRequests::iterator it = hmi_requests_.begin(); + it != hmi_requests_.end(); ++it) { + HmiRequest & hmi_request = *it; + if (hmi_request.func_id == event.id()) { + hmi_request.status = + static_cast<hmi_apis::Common_Result::eType>(message[strings::params][hmi_response::code] + .asInt()); + if (hmi_apis::Common_Result::SUCCESS == hmi_request.status) + hmi_request.value = message[strings::msg_params][hmi_request.str]; + hmi_request.complete = true; + break; + } + } + bool all_complete = true; + bool any_arg_success = false; + mobile_api::Result::eType status = mobile_api::Result::eType::SUCCESS; + for (HmiRequests::const_iterator it = hmi_requests_.begin(); + it != hmi_requests_.end(); ++it) { + if (!it->complete) { + all_complete = false; + break; + } + if (hmi_apis::Common_Result::SUCCESS != it->status) { + if (mobile_api::Result::SUCCESS == status) { + status = static_cast<mobile_apis::Result::eType>(it->status); + } else if (status + != static_cast<mobile_apis::Result::eType>(it->status)) { + status = mobile_api::Result::eType::GENERIC_ERROR; + } + LOG4CXX_TRACE(logger_, "Status from HMI: " << it->status << + ", so response status become " << status); + } else { + any_arg_success = true; + } + } + + if (all_complete) { + smart_objects::SmartObject response_params(smart_objects::SmartType_Map); + if (any_arg_success) { + for (HmiRequests::const_iterator it = hmi_requests_.begin(); + it != hmi_requests_.end(); ++it) { + response_params[it->str] = it->value; + } + } + LOG4CXX_INFO(logger_, "All HMI requests are complete"); + SendResponse(any_arg_success, status, NULL, &response_params); + app->UpdateHash(); + } +#endif // #ifdef QT_HMI +} + +bool SubscribeVehicleDataRequest::IsAnythingAlreadySubscribed() { + LOG4CXX_INFO(logger_, "SubscribeVehicleDataRequest::Run"); + + const VehicleData& vehicle_data = MessageHelper::vehicle_data(); + VehicleData::const_iterator it = vehicle_data.begin(); + + for (; vehicle_data.end() != it; ++it) { + if (true == (*message_)[strings::msg_params].keyExists(it->first)) { + + if ((*message_)[strings::msg_params][it->first] + [strings::result_code].asInt() == + hmi_apis::Common_VehicleDataResultCode:: + VDRC_DATA_ALREADY_SUBSCRIBED) { + return true; + } + } + } + + return false; +} + + +} // namespace commands +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_response.cc new file mode 100644 index 000000000..972a65418 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_response.cc @@ -0,0 +1,56 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/subscribe_vehicle_data_response.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { +namespace commands { + +SubscribeVehicleDataResponse::SubscribeVehicleDataResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +SubscribeVehicleDataResponse::~SubscribeVehicleDataResponse() { +} + +void SubscribeVehicleDataResponse::Run() { + LOG4CXX_INFO(logger_, "SubscribeVehicleDataResponse::Run"); + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/sync_pdata_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/sync_pdata_request.cc new file mode 100644 index 000000000..4fae27be5 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/sync_pdata_request.cc @@ -0,0 +1,103 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/sync_pdata_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/MOBILE_API.h" +#include "utils/file_system.h" +#include "encryption/Base64.h" + +namespace application_manager { + +namespace commands { + +const std::string SyncPDataRequest::TEMPORARY_HARDCODED_FILENAME = + "policy_sync_data.dat"; +const std::string SyncPDataRequest::TEMPORARY_HARDCODED_FOLDERNAME = + "policies"; + +SyncPDataRequest::SyncPDataRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +SyncPDataRequest::~SyncPDataRequest() { +} + +void SyncPDataRequest::Run() { + LOG4CXX_INFO(logger_, "SyncPDataRequest::Run"); + + ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application( + connection_key()); + + if (!application) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + if (!(*message_)[strings::params].keyExists(strings::binary_data)) { + LOG4CXX_ERROR(logger_, "Binary data is missed!"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + + const std::string& sync_file_name = TEMPORARY_HARDCODED_FILENAME; + + const std::vector<uint8_t> file_data = + (*message_)[strings::params][strings::binary_data].asBinary(); + + std::string relative_file_path = file_system::CreateDirectory( + TEMPORARY_HARDCODED_FOLDERNAME); + relative_file_path += "/"; + relative_file_path += sync_file_name; + + mobile_apis::Result::eType save_result = + ApplicationManagerImpl::instance()->SaveBinary( + application->name(), + file_data, + relative_file_path); + + switch(save_result) { + case mobile_apis::Result::SUCCESS: + SendResponse(true, save_result); + break; + default: + SendResponse(false, save_result); + break; + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/sync_pdata_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/sync_pdata_response.cc new file mode 100644 index 000000000..751fd9eb6 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/sync_pdata_response.cc @@ -0,0 +1,67 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/sync_pdata_response.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +SyncPDataResponse::SyncPDataResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +SyncPDataResponse::~SyncPDataResponse() { +} + +void SyncPDataResponse::Run() { + LOG4CXX_INFO(logger_, "SyncPDataResponse::Run"); + + // check if response false + if (true == (*message_)[strings::msg_params].keyExists(strings::success)) { + if ((*message_)[strings::msg_params][strings::success].asBool() == false) { + LOG4CXX_ERROR(logger_, "Success = false"); + SendResponse(false); + return; + } + } + + SendResponse(true); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/system_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/system_request.cc new file mode 100644 index 000000000..270907e55 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/system_request.cc @@ -0,0 +1,72 @@ +/* + +Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/system_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +namespace commands { + +SystemRequest::SystemRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +SystemRequest::~SystemRequest() { +} + +void SystemRequest::Run() { + LOG4CXX_INFO(logger_, "SystemRequest::Run"); + + ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application( + connection_key()); + + if (!application) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + if (!(*message_)[strings::params].keyExists(strings::binary_data)) { + LOG4CXX_ERROR(logger_, "Binary data is missed!"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + + SendResponse(true, mobile_apis::Result::SUCCESS); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/system_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/system_response.cc new file mode 100644 index 000000000..e77ab0845 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/system_response.cc @@ -0,0 +1,56 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/system_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +SystemResponse::SystemResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +SystemResponse::~SystemResponse() { +} + +void SystemResponse::Run() { + LOG4CXX_INFO(logger_, "SystemResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/unregister_app_interface_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/unregister_app_interface_request.cc new file mode 100644 index 000000000..0fc1d1fa0 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/unregister_app_interface_request.cc @@ -0,0 +1,59 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/unregister_app_interface_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/message_helper.h" + +namespace application_manager { + +namespace commands { + +void UnregisterAppInterfaceRequest::Run() { + LOG4CXX_INFO(logger_, "UnregisterAppInterfaceRequest::Run"); + + ApplicationManagerImpl* app_manager = ApplicationManagerImpl::instance(); + + if (!app_manager->application(connection_key())) { + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + LOG4CXX_ERROR(logger_, "Application is not registered"); + return; + } + + app_manager->UnregisterApplication(connection_key()); + SendResponse(true, mobile_apis::Result::SUCCESS); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/unregister_app_interface_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/unregister_app_interface_response.cc new file mode 100644 index 000000000..8ef0eb3ed --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/unregister_app_interface_response.cc @@ -0,0 +1,47 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/unregister_app_interface_response.h" + +namespace application_manager { + +namespace commands { + +void UnregisterAppInterfaceResponse::Run() { + LOG4CXX_INFO(logger_, "UnregisterAppInterfaceResponse::Run"); + + SendResponse((*message_)[strings::msg_params][strings::success].asBool()); +} + +} // namespace commands +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_button_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_button_request.cc new file mode 100644 index 000000000..f22d1c0a2 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_button_request.cc @@ -0,0 +1,79 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/unsubscribe_button_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" + +namespace application_manager { + +namespace commands { + +namespace str = strings; + +UnsubscribeButtonRequest::UnsubscribeButtonRequest( + const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +UnsubscribeButtonRequest::~UnsubscribeButtonRequest() { +} + +void UnsubscribeButtonRequest::Run() { + LOG4CXX_INFO(logger_, "UnsubscribeButtonRequest::Run"); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + (*message_)[str::params][str::connection_key].asUInt()); + + if (!app) { + LOG4CXX_ERROR_EXT(logger_, "APPLICATION_NOT_REGISTERED"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + const uint32_t btn_id = (*message_)[str::msg_params][str::button_name] + .asUInt(); + + if (!app->IsSubscribedToButton(static_cast<mobile_apis::ButtonName::eType>(btn_id))) { + LOG4CXX_ERROR_EXT(logger_, "App doesn't subscibe to button " << btn_id); + SendResponse(false, mobile_apis::Result::IGNORED); + return; + } + + app->UnsubscribeFromButton(static_cast<mobile_apis::ButtonName::eType>(btn_id)); + SendResponse(true, mobile_apis::Result::SUCCESS); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_button_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_button_response.cc new file mode 100644 index 000000000..1331eac27 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_button_response.cc @@ -0,0 +1,69 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/unsubscribe_button_response.h" +#include "application_manager/application_manager_impl.h" + +namespace application_manager { + +namespace commands { + +UnsubscribeButtonResponse::UnsubscribeButtonResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +UnsubscribeButtonResponse::~UnsubscribeButtonResponse() { +} + +void UnsubscribeButtonResponse::Run() { + LOG4CXX_INFO(logger_, "UnsubscribeButtonResponse::Run"); + + namespace smart_objects = NsSmartDeviceLink::NsSmartObjects; + + // check if response false + if (true == (*message_)[strings::msg_params].keyExists(strings::success)) { + if ((*message_)[strings::msg_params][strings::success].asBool() == false) { + LOG4CXX_ERROR(logger_, "Success = false"); + SendResponse(false); + return; + } + } + + // TODO(DK): Some logic + SendResponse(true); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc new file mode 100644 index 000000000..5d2e33015 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc @@ -0,0 +1,272 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/unsubscribe_vehicle_data_request.h" +#include "application_manager/commands/command_impl.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" +#include "application_manager/smart_object_keys.h" + +namespace application_manager { +namespace commands { + +UnsubscribeVehicleDataRequest::UnsubscribeVehicleDataRequest( + const MessageSharedPtr& message) + : CommandRequestImpl(message) { +} + +UnsubscribeVehicleDataRequest::~UnsubscribeVehicleDataRequest() { +} + +#ifdef QT_HMI +namespace { + struct Subrequest { + hmi_apis::FunctionID::eType func_id; + const char* str; + }; + Subrequest subrequests[] = { + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeGps, strings::gps}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeSpeed, strings::speed}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeRpm, strings::rpm}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel, strings::fuel_level}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel_State, strings::fuel_level_state}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeInstantFuelConsumption, strings::instant_fuel_consumption}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeExternalTemperature, strings::external_temp}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeVin, strings::vin}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribePrndl, strings::prndl}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeTirePressure, strings::tire_pressure}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeOdometer, strings::odometer}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeBeltStatus, strings::belt_status}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeBodyInformation, strings::body_information}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeDeviceStatus, strings::device_status}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeDriverBraking, strings::driver_braking}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeWiperStatus, strings::wiper_status}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeHeadLampStatus, strings::head_lamp_status}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeEngineTorque, strings::engine_torque}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeAccPedalPosition, strings::acc_pedal_pos}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeSteeringWheelAngle, strings::steering_wheel_angle}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeECallInfo, strings::e_call_info}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeAirbagStatus, strings::airbag_status}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeEmergencyEvent, strings::emergency_event}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeClusterModeStatus, strings::cluster_mode_status}, + { hmi_apis::FunctionID::VehicleInfo_UnsubscribeMyKey, strings::my_key}, + }; +} +#endif // #ifdef QT_HMI + +void UnsubscribeVehicleDataRequest::Run() { + LOG4CXX_INFO(logger_, "UnsubscribeVehicleDataRequest::Run"); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + CommandRequestImpl::connection_key()); + + if (!app) { + LOG4CXX_ERROR(logger_, "NULL pointer"); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + // counter for items to subscribe + int32_t items_to_unsubscribe = 0; + // counter for subscribed items by application + int32_t unsubscribed_items = 0; + + const VehicleData& vehicle_data = MessageHelper::vehicle_data(); + VehicleData::const_iterator it = vehicle_data.begin(); + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + msg_params[strings::app_id] = app->app_id(); + + for (; vehicle_data.end() != it; ++it) { + std::string key_name = it->first; + if ((*message_)[strings::msg_params].keyExists(key_name)) { + bool is_key_enabled = (*message_)[strings::msg_params][key_name].asBool(); + if (is_key_enabled) { + ++items_to_unsubscribe; + msg_params[key_name] = is_key_enabled; + + VehicleDataType key_type = it->second; + if (app->UnsubscribeFromIVI(static_cast<uint32_t>(key_type))) { + ++unsubscribed_items; + } + } + } + } + + if (0 == items_to_unsubscribe) { + SendResponse(false, mobile_apis::Result::INVALID_DATA, + "No data in the request", &msg_params); + return; + } else if (0 == unsubscribed_items) { + SendResponse(false, mobile_apis::Result::IGNORED, + "Was not subscribed on any VehicleData", &msg_params); + return; + } + +#ifdef WEB_HMI + SendHMIRequest(hmi_apis::FunctionID::VehicleInfo_UnsubscribeVehicleData, + &msg_params, true); +#endif // #ifdef WEB_HMI + +#ifdef QT_HMI + //Generate list of subrequests + for (int i = 0; i < sizeof(subrequests) / sizeof(subrequests[0]); ++i) { + const Subrequest& sr = subrequests[i]; + if (true == (*message_)[strings::msg_params].keyExists(sr.str) + && true == (*message_)[strings::msg_params][sr.str].asBool()) { + HmiRequest hmi_request; + hmi_request.str = sr.str; + hmi_request.func_id = sr.func_id; + hmi_request.complete = false; + hmi_requests_.push_back(hmi_request); + } + } + LOG4CXX_INFO(logger_, + hmi_requests_.size() << " requests are going to be sent to HMI"); + + //Send subrequests + for (HmiRequests::const_iterator it = hmi_requests_.begin(); + it != hmi_requests_.end(); ++it) + SendHMIRequest(it->func_id, &msg_params, true); +#endif // #ifdef QT_HMI +} + +void UnsubscribeVehicleDataRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "UnsubscribeVehicleDataRequest::on_event"); + + const smart_objects::SmartObject& message = event.smart_object(); + +#ifdef WEB_HMI + hmi_apis::Common_Result::eType hmi_result = + static_cast<hmi_apis::Common_Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + bool result = + hmi_result == hmi_apis::Common_Result::SUCCESS; + + mobile_apis::Result::eType result_code = + hmi_result == hmi_apis::Common_Result::SUCCESS + ? mobile_apis::Result::SUCCESS + : static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + const char* return_info = NULL; + + if (result) { + if (IsAnythingAlreadyUnsubscribed()) { + result_code = mobile_apis::Result::WARNINGS; + return_info = + std::string("Unsupported phoneme type sent in a prompt").c_str(); + } + } + + SendResponse(result, result_code, return_info, + &(message[strings::msg_params])); +#endif // #ifdef WEB_HMI +#ifdef QT_HMI + for (HmiRequests::iterator it = hmi_requests_.begin(); + it != hmi_requests_.end(); ++it) { + HmiRequest & hmi_request = *it; + if (hmi_request.func_id == event.id()) { + hmi_request.status = + static_cast<hmi_apis::Common_Result::eType>(message[strings::params][hmi_response::code] + .asInt()); + if (hmi_apis::Common_Result::SUCCESS == hmi_request.status) + hmi_request.value = message[strings::msg_params][hmi_request.str]; + hmi_request.complete = true; + break; + } + } + bool all_complete = true; + bool any_arg_success = false; + mobile_api::Result::eType status = mobile_api::Result::eType::SUCCESS; + for (HmiRequests::const_iterator it = hmi_requests_.begin(); + it != hmi_requests_.end(); ++it) { + if (!it->complete) { + all_complete = false; + break; + } + if (hmi_apis::Common_Result::SUCCESS != it->status) { + if (mobile_api::Result::SUCCESS == status) { + status = static_cast<mobile_apis::Result::eType>(it->status); + } else if (status + != static_cast<mobile_apis::Result::eType>(it->status)) { + status = mobile_api::Result::eType::GENERIC_ERROR; + } LOG4CXX_TRACE(logger_, "Status from HMI: " << it->status << + ", so response status become " << status); + } else { + any_arg_success = true; + } + } + if (all_complete) { + smart_objects::SmartObject response_params(smart_objects::SmartType_Map); + if (any_arg_success) { + for (HmiRequests::const_iterator it = hmi_requests_.begin(); + it != hmi_requests_.end(); ++it) { + response_params[it->str] = it->value; + } + } + LOG4CXX_INFO(logger_, "All HMI requests are complete"); + SendResponse(any_arg_success, status, NULL, &response_params); + } +#endif // #ifdef QT_HMI +} + +bool UnsubscribeVehicleDataRequest::IsAnythingAlreadyUnsubscribed() { + LOG4CXX_INFO(logger_, "UnsubscribeVehicleDataRequest::Run"); + + const VehicleData& vehicle_data = MessageHelper::vehicle_data(); + VehicleData::const_iterator it = vehicle_data.begin(); + + for (; vehicle_data.end() != it; ++it) { + if (true == (*message_)[strings::msg_params].keyExists(it->first)) { + + if ((*message_)[strings::msg_params][it->first] + [strings::result_code].asInt() == + hmi_apis::Common_VehicleDataResultCode::VDRC_DATA_NOT_SUBSCRIBED) { + return true; + } + } + } + + return false; +} + + +} // namespace commands +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_response.cc new file mode 100644 index 000000000..60f7077da --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_response.cc @@ -0,0 +1,66 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/unsubscribe_vehicle_data_response.h" + +namespace application_manager { +namespace commands { + +UnsubscribeVehicleDataResponse::UnsubscribeVehicleDataResponse( + const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +UnsubscribeVehicleDataResponse::~UnsubscribeVehicleDataResponse() { +} + +void UnsubscribeVehicleDataResponse::Run() { + LOG4CXX_INFO(logger_, "UnsubscribeVehicleDataResponse::Run"); + + namespace smart_objects = NsSmartDeviceLink::NsSmartObjects; + + // check if response false + if (true == (*message_)[strings::msg_params].keyExists(strings::success)) { + if ((*message_)[strings::msg_params][strings::success].asBool() == false) { + LOG4CXX_ERROR(logger_, "Success = false"); + SendResponse(false); + return; + } + } + + // TODO(DK): Some logic + SendResponse(true); +} + +} // namespace commands +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/update_turn_list_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/update_turn_list_request.cc new file mode 100644 index 000000000..f2077ab41 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/update_turn_list_request.cc @@ -0,0 +1,172 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include <string> +#include "application_manager/commands/mobile/update_turn_list_request.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application_impl.h" +#include "application_manager/message_helper.h" +#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UpdateTurnListRequest::UpdateTurnListRequest(const MessageSharedPtr& message) + : CommandRequestImpl(message), + result_(mobile_apis::Result::INVALID_ENUM) { +} + +UpdateTurnListRequest::~UpdateTurnListRequest() { +} + +void UpdateTurnListRequest::Run() { + LOG4CXX_INFO(logger_, "UpdateTurnListRequest::Run"); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( + (*message_)[strings::params][strings::connection_key].asUInt()); + + if (!app) { + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + LOG4CXX_ERROR(logger_, "Application is not registered"); + return; + } + + mobile_apis::Result::eType processing_result = + MessageHelper::ProcessSoftButtons((*message_)[strings::msg_params], app); + + if (mobile_apis::Result::SUCCESS != processing_result) { + if (mobile_apis::Result::INVALID_DATA == processing_result) { + LOG4CXX_ERROR(logger_, "INVALID_DATA!"); + SendResponse(false, processing_result); + return; + } + if (mobile_apis::Result::UNSUPPORTED_RESOURCE == processing_result) { + LOG4CXX_ERROR(logger_, "UNSUPPORTED_RESOURCE!"); + result_ = processing_result; + } + } + + mobile_apis::Result::eType verification_result = + MessageHelper::VerifyImageFiles((*message_)[strings::msg_params], app); + + if (mobile_apis::Result::SUCCESS != verification_result) { + LOG4CXX_ERROR_EXT( + logger_, + "MessageHelper::VerifyImageFiles return " << verification_result); + SendResponse(false, verification_result); + return; + } + + if (!CheckTurnListArray()) { + LOG4CXX_ERROR(logger_, "INVALID_DATA!"); + SendResponse(false, mobile_apis::Result::INVALID_DATA); + return; + } + + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params = (*message_)[strings::msg_params]; + for (uint32_t i = 0; i < msg_params[strings::turn_list].length(); ++i) { + if (msg_params[strings::turn_list][i].keyExists(hmi_request::navi_text)) { + std::string navigation_text = + msg_params[strings::turn_list][i][hmi_request::navi_text].asString(); + msg_params[strings::turn_list][i].erase(hmi_request::navi_text); + msg_params[strings::turn_list] + [i][hmi_request::navi_text][hmi_request::field_name] = + static_cast<int>(hmi_apis::Common_TextFieldName::turnText); + msg_params[strings::turn_list] + [i][hmi_request::navi_text][hmi_request::field_text] = + navigation_text; + } + } + + msg_params[strings::app_id] = app->app_id(); + + + SendHMIRequest(hmi_apis::FunctionID::Navigation_UpdateTurnList, &msg_params, + true); +} + +void UpdateTurnListRequest::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "UpdateTurnListRequest::on_event"); + const smart_objects::SmartObject& message = event.smart_object(); + + switch (event.id()) { + case hmi_apis::FunctionID::Navigation_UpdateTurnList: { + LOG4CXX_INFO(logger_, "Received Navigation_UpdateTurnList event"); + + mobile_apis::Result::eType result_code = + static_cast<mobile_apis::Result::eType>( + message[strings::params][hmi_response::code].asInt()); + + bool result = mobile_apis::Result::SUCCESS == result_code; + if (mobile_apis::Result::INVALID_ENUM != result_) { + result_code = result_; + } + + SendResponse(result, result_code, NULL, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_,"Received unknown event" << event.id()); + break; + } + } +} + +bool UpdateTurnListRequest::CheckTurnListArray() { + if (!(*message_)[strings::msg_params].keyExists(strings::turn_list)) { + return false; + } + + int32_t length = (*message_)[strings::msg_params][strings::turn_list].length(); + if (0 == length) { + return false; + } + for (int32_t i = 0; i < length; ++i) { + if (!((*message_)[strings::msg_params][strings::turn_list][i]. + keyExists(hmi_request::navi_text)) && + !((*message_)[strings::msg_params][strings::turn_list][i]. + keyExists(strings::turn_icon))) { + return false; + } + } + return true; +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/update_turn_list_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/update_turn_list_response.cc new file mode 100644 index 000000000..ec1e0bce8 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/mobile/update_turn_list_response.cc @@ -0,0 +1,57 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/mobile/update_turn_list_response.h" +#include "application_manager/application_manager_impl.h" +#include "interfaces/HMI_API.h" + +namespace application_manager { + +namespace commands { + +UpdateTurnListResponse::UpdateTurnListResponse(const MessageSharedPtr& message) + : CommandResponseImpl(message) { +} + +UpdateTurnListResponse::~UpdateTurnListResponse() { +} + +void UpdateTurnListResponse::Run() { + LOG4CXX_INFO(logger_, "UpdateTurnListResponse::Run"); + + ApplicationManagerImpl::instance()->SendMessageToMobile(message_); +} + +} // namespace commands + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/commands/pending.cc b/SDL_Core/src/components/application_manager/src/commands/pending.cc new file mode 100644 index 000000000..0c04464af --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/commands/pending.cc @@ -0,0 +1,67 @@ +/* + + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/commands/pending.h" + +namespace application_manager { + +namespace commands { + + +Pending::Pending() +: last_(hmi_apis::FunctionID::INVALID_ENUM) { +} + +Pending::~Pending() { +} + +void Pending::Add(hmi_apis::FunctionID::eType id) { + sync_primitives::AutoLock L(lock_); + pending_.insert(id); +} + +void Pending::Remove(hmi_apis::FunctionID::eType id) { + sync_primitives::AutoLock L(lock_); + pending_.erase(id); + + if (pending_.empty()) { + last_ = id; + } +} + +bool Pending::IsFinal(hmi_apis::FunctionID::eType id) { + return id == last_; +} + +} // namespace commands +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/event_engine/event.cc b/SDL_Core/src/components/application_manager/src/event_engine/event.cc new file mode 100644 index 000000000..e454025df --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/event_engine/event.cc @@ -0,0 +1,56 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/event_engine/event.h" +#include "application_manager/event_engine/event_dispatcher.h" + +namespace application_manager { +namespace event_engine { + +Event::Event(const EventID& id) +: id_(id) +, response_so_() { +} + +Event::~Event() { +} + +void Event::raise() { + EventDispatcher::instance()->raise_event(*this); +} + +void Event::set_smart_object(smart_objects::SmartObject& so) { + response_so_ = so; +} + +} +} diff --git a/SDL_Core/src/components/application_manager/src/event_engine/event_dispatcher.cc b/SDL_Core/src/components/application_manager/src/event_engine/event_dispatcher.cc new file mode 100644 index 000000000..a70906580 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/event_engine/event_dispatcher.cc @@ -0,0 +1,119 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "interfaces/HMI_API.h" +#include "application_manager/event_engine/event_observer.h" +#include "application_manager/event_engine/event_dispatcher.h" + +namespace application_manager { +namespace event_engine { +using namespace sync_primitives; + +EventDispatcher::EventDispatcher() + : observers_() { +} + +EventDispatcher::~EventDispatcher() { +} + +void EventDispatcher::raise_event(const Event& event) { + // create local list + ObserverList list; + { + AutoLock auto_lock(state_lock_); + // check if event is notification + if (hmi_apis::messageType::notification == event.smart_object_type()) { + + //ObserversMap iterator + ObserversMap::iterator it = observers_[event.id()].begin(); + for (; observers_[event.id()].end() != it; ++it) { + list = it->second; + } + } + + if (hmi_apis::messageType::response == event.smart_object_type() + || hmi_apis::messageType::error_response == event.smart_object_type()) { + list = observers_[event.id()][event.smart_object_correlation_id()]; + } + } + + // Call observers + ObserverList::iterator observers = list.begin(); + for (; list.end() != observers; ++observers) { + (*observers)->on_event(event); + } +} + +void EventDispatcher::add_observer(const Event::EventID& event_id, + int32_t hmi_correlation_id, + EventObserver* const observer) { + AutoLock auto_lock(state_lock_); + observers_[event_id][hmi_correlation_id].push_back(observer); +} + +void EventDispatcher::remove_observer(const Event::EventID& event_id, + EventObserver* const observer) { + AutoLock auto_lock(state_lock_); + ObserversMap::iterator it = observers_[event_id].begin(); + for (; observers_[event_id].end() != it; ++it) { + + //ObserverList iterator + ObserverList::iterator observer_it = it->second.begin(); + for (; it->second.end() != observer_it; ++observer_it) { + if (observer->id() == (*observer_it)->id()) { + observer_it = it->second.erase(observer_it); + } + } + } +} + +void EventDispatcher::remove_observer(EventObserver* const observer) { + AutoLock auto_lock(state_lock_); + EventObserverMap::iterator event_map = observers_.begin(); + for (; observers_.end() != event_map; ++event_map) { + + ObserversMap::iterator it = event_map->second.begin(); + for (; event_map->second.end() != it; ++it) { + + //ObserverList iterator + ObserverList::iterator observer_it = it->second.begin(); + for (; it->second.end() != observer_it; ++observer_it) { + if (observer->id() == (*observer_it)->id()) { + observer_it = it->second.erase(observer_it); + } + } + } + } +} + +} +} diff --git a/SDL_Core/src/components/application_manager/src/event_engine/event_observer.cc b/SDL_Core/src/components/application_manager/src/event_engine/event_observer.cc new file mode 100644 index 000000000..c6d81529f --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/event_engine/event_observer.cc @@ -0,0 +1,63 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/event_engine/event.h" +#include "application_manager/event_engine/event_observer.h" + +namespace application_manager { +namespace event_engine { + +EventObserver::EventObserver() + : id_(0) { + //Get unique id based on this + id_ = reinterpret_cast<unsigned long>(this); +} + +EventObserver::~EventObserver() { + unsubscribe_from_all_events(); +} + +void EventObserver::subscribe_on_event(const Event::EventID& event_id, + int32_t hmi_correlation_id) { + EventDispatcher::instance()->add_observer(event_id, hmi_correlation_id, this); +} + +void EventObserver::unsubscribe_from_event(const Event::EventID& event_id) { + EventDispatcher::instance()->remove_observer(event_id, this); +} + +void EventObserver::unsubscribe_from_all_events() { + EventDispatcher::instance()->remove_observer(this); +} + +} +} diff --git a/SDL_Core/src/components/application_manager/src/hmi_capabilities.cc b/SDL_Core/src/components/application_manager/src/hmi_capabilities.cc new file mode 100644 index 000000000..d62b0f609 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/hmi_capabilities.cc @@ -0,0 +1,691 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include <map> +#include "json/json.h" +#include "utils/file_system.h" +#include "interfaces/HMI_API.h" +#include "config_profile/profile.h" +#include "smart_objects/smart_object.h" +#include "application_manager/message_helper.h" +#include "application_manager/hmi_capabilities.h" +#include "application_manager/smart_object_keys.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/message_helper.h" + +namespace application_manager { + +std::map<std::string, hmi_apis::Common_Language::eType> languages_enum_values = +{ + {"EN_US", hmi_apis::Common_Language::EN_US}, + {"ES_MX", hmi_apis::Common_Language::ES_MX}, + {"FR_CA", hmi_apis::Common_Language::FR_CA}, + {"DE_DE", hmi_apis::Common_Language::DE_DE}, + {"ES_ES", hmi_apis::Common_Language::ES_ES}, + {"EN_GB", hmi_apis::Common_Language::EN_GB}, + {"TR_TR", hmi_apis::Common_Language::RU_RU}, + {"TR_TR", hmi_apis::Common_Language::TR_TR}, + {"PL_PL", hmi_apis::Common_Language::PL_PL}, + {"FR_FR", hmi_apis::Common_Language::FR_FR}, + {"IT_IT", hmi_apis::Common_Language::IT_IT}, + {"SV_SE", hmi_apis::Common_Language::SV_SE}, + {"PT_PT", hmi_apis::Common_Language::PT_PT}, + {"EN_AU", hmi_apis::Common_Language::NL_NL}, + {"EN_AU", hmi_apis::Common_Language::EN_AU}, + {"ZH_CN", hmi_apis::Common_Language::ZH_CN}, + {"ZH_TW", hmi_apis::Common_Language::ZH_TW}, + {"JA_JP", hmi_apis::Common_Language::JA_JP}, + {"AR_SA", hmi_apis::Common_Language::AR_SA}, + {"KO_KR", hmi_apis::Common_Language::KO_KR}, + {"PT_BR", hmi_apis::Common_Language::PT_BR}, + {"CS_CZ", hmi_apis::Common_Language::CS_CZ}, + {"DA_DK", hmi_apis::Common_Language::DA_DK}, + {"NO_NO", hmi_apis::Common_Language::NO_NO} +}; + +std::map<std::string, hmi_apis::Common_VrCapabilities::eType> vr_enum_capabilities = +{ + {"TEXT", hmi_apis::Common_VrCapabilities::VR_TEXT} +}; + +std::map<std::string, hmi_apis::Common_ButtonName::eType> button_enum_name = +{ + {"OK" , hmi_apis::Common_ButtonName::OK}, + {"SEEKLEFT" , hmi_apis::Common_ButtonName::SEEKLEFT}, + {"SEEKRIGHT" , hmi_apis::Common_ButtonName::SEEKRIGHT}, + {"TUNEUP" , hmi_apis::Common_ButtonName::TUNEUP}, + {"TUNEDOWN" , hmi_apis::Common_ButtonName::TUNEDOWN}, + {"PRESET_0" , hmi_apis::Common_ButtonName::PRESET_0}, + {"PRESET_1" , hmi_apis::Common_ButtonName::PRESET_1}, + {"PRESET_2" , hmi_apis::Common_ButtonName::PRESET_2}, + {"PRESET_3" , hmi_apis::Common_ButtonName::PRESET_3}, + {"PRESET_4" , hmi_apis::Common_ButtonName::PRESET_4}, + {"PRESET_5" , hmi_apis::Common_ButtonName::PRESET_5}, + {"PRESET_6" , hmi_apis::Common_ButtonName::PRESET_6}, + {"PRESET_7" , hmi_apis::Common_ButtonName::PRESET_7}, + {"PRESET_8" , hmi_apis::Common_ButtonName::PRESET_8}, + {"PRESET_9" , hmi_apis::Common_ButtonName::PRESET_9}, + {"CUSTOM_BUTTON" , hmi_apis::Common_ButtonName::CUSTOM_BUTTON}, + {"SEARCH" , hmi_apis::Common_ButtonName::SEARCH}, + +}; + +std::map<std::string, hmi_apis::Common_TextFieldName::eType> text_fields_enum_name = +{ + {"mainField1", hmi_apis::Common_TextFieldName::mainField1}, + {"mainField2", hmi_apis::Common_TextFieldName::mainField2}, + {"mainField3", hmi_apis::Common_TextFieldName::mainField3}, + {"mainField4", hmi_apis::Common_TextFieldName::mainField4}, + {"statusBar" , hmi_apis::Common_TextFieldName::statusBar}, + {"mediaClock", hmi_apis::Common_TextFieldName::mediaClock}, + {"mediaTrack", hmi_apis::Common_TextFieldName::mediaTrack}, + {"alertText1", hmi_apis::Common_TextFieldName::alertText1}, + {"alertText2", hmi_apis::Common_TextFieldName::alertText2}, + {"alertText3", hmi_apis::Common_TextFieldName::alertText3}, + {"scrollableMessageBody" , hmi_apis::Common_TextFieldName::scrollableMessageBody}, + {"initialInteractionText", hmi_apis::Common_TextFieldName::initialInteractionText}, + {"navigationText1" , hmi_apis::Common_TextFieldName::navigationText1}, + {"navigationText2" , hmi_apis::Common_TextFieldName::navigationText2}, + {"ETA" , hmi_apis::Common_TextFieldName::ETA}, + {"totalDistance" , hmi_apis::Common_TextFieldName::totalDistance}, + {"audioPassThruDisplayText1", hmi_apis::Common_TextFieldName::audioPassThruDisplayText1}, + {"audioPassThruDisplayText2", hmi_apis::Common_TextFieldName::audioPassThruDisplayText2}, + {"sliderHeader" , hmi_apis::Common_TextFieldName::sliderHeader}, + {"sliderFooter" , hmi_apis::Common_TextFieldName::sliderFooter}, + {"notificationText" , hmi_apis::Common_TextFieldName::notificationText}, + {"menuName" , hmi_apis::Common_TextFieldName::menuName}, + {"secondaryText" , hmi_apis::Common_TextFieldName::secondaryText}, + {"tertiaryText" , hmi_apis::Common_TextFieldName::tertiaryText}, + {"timeToDestination", hmi_apis::Common_TextFieldName::timeToDestination}, + {"turnText" , hmi_apis::Common_TextFieldName::turnText} +}; + +std::map<std::string, hmi_apis::Common_MediaClockFormat::eType> media_clock_enum_name = +{ + {"CLOCK1" , hmi_apis::Common_MediaClockFormat::CLOCK1}, + {"CLOCK2" , hmi_apis::Common_MediaClockFormat::CLOCK2}, + {"CLOCK3" , hmi_apis::Common_MediaClockFormat::CLOCK3}, + {"CLOCKTEXT1", hmi_apis::Common_MediaClockFormat::CLOCKTEXT1}, + {"CLOCKTEXT2", hmi_apis::Common_MediaClockFormat::CLOCKTEXT2}, + {"CLOCKTEXT3", hmi_apis::Common_MediaClockFormat::CLOCKTEXT3}, + {"CLOCKTEXT4", hmi_apis::Common_MediaClockFormat::CLOCKTEXT4}, +}; + +std::map<std::string, hmi_apis::Common_ImageType::eType> image_type_enum = +{ + {"STATIC" , hmi_apis::Common_ImageType::STATIC}, + {"DYNAMIC", hmi_apis::Common_ImageType::DYNAMIC} +}; + +std::map<std::string, hmi_apis::Common_SamplingRate::eType> sampling_rate_enum = +{ + {"8KHZ" , hmi_apis::Common_SamplingRate::RATE_8KHZ}, + {"16KHZ", hmi_apis::Common_SamplingRate::RATE_16KHZ}, + {"22KHZ", hmi_apis::Common_SamplingRate::RATE_22KHZ}, + {"44KHZ", hmi_apis::Common_SamplingRate::RATE_44KHZ} +}; + +std::map<std::string, hmi_apis::Common_BitsPerSample::eType> bit_per_sample_enum = +{ + {"RATE_8_BIT", hmi_apis::Common_BitsPerSample::RATE_8_BIT}, + {"RATE_16_BIT", hmi_apis::Common_BitsPerSample::RATE_16_BIT} +}; + +std::map<std::string, hmi_apis::Common_AudioType::eType> audio_type_enum = +{ + {"PCM", hmi_apis::Common_AudioType::PCM} +}; + +std::map<std::string, hmi_apis::Common_HmiZoneCapabilities::eType> hmi_zone_enum = +{ + {"FRONT", hmi_apis::Common_HmiZoneCapabilities::FRONT}, + {"BACK", hmi_apis::Common_HmiZoneCapabilities::BACK}, +}; + + + +HMICapabilities::HMICapabilities(ApplicationManagerImpl* const app_mngr) + : is_vr_cooperating_(false), + is_tts_cooperating_(false), + is_ui_cooperating_(false), + is_navi_cooperating_(false), + is_ivi_cooperating_(false), + is_vr_ready_response_recieved_(false), + is_tts_ready_response_recieved_(false), + is_ui_ready_response_recieved_(false), + is_navi_ready_response_recieved_(false), + is_ivi_ready_response_recieved_(false), + ui_language_(hmi_apis::Common_Language::INVALID_ENUM), + vr_language_(hmi_apis::Common_Language::INVALID_ENUM), + tts_language_(hmi_apis::Common_Language::INVALID_ENUM), + vehicle_type_(NULL), + attenuated_supported_(false), + ui_supported_languages_(NULL), + tts_supported_languages_(NULL), + vr_supported_languages_(NULL), + display_capabilities_(NULL), + hmi_zone_capabilities_(NULL), + soft_buttons_capabilities_(NULL), + button_capabilities_(NULL), + preset_bank_capabilities_(NULL), + vr_capabilities_(NULL), + speech_capabilities_(NULL), + audio_pass_thru_capabilities_(NULL), + app_mngr_(app_mngr), + prerecorded_speech_(NULL) { + + if (false == profile::Profile::instance()->launch_hmi()) { + if (load_capabilities_from_file()) { + is_vr_ready_response_recieved_ = true; + is_tts_ready_response_recieved_ = true; + is_ui_ready_response_recieved_ = true; + is_navi_ready_response_recieved_ = true; + is_ivi_ready_response_recieved_ = true; + + is_vr_cooperating_ = true; + is_tts_cooperating_ = true; + is_ui_cooperating_ = true; + is_navi_cooperating_ = true; + is_ivi_cooperating_ = true; + } + } +} + +HMICapabilities::~HMICapabilities() { + 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 prerecorded_speech_; + app_mngr_ = NULL; +} + +bool HMICapabilities::is_hmi_capabilities_initialized() const { + bool result = true; + + if (is_vr_ready_response_recieved_ && is_tts_ready_response_recieved_ + && is_ui_ready_response_recieved_ && is_navi_ready_response_recieved_ + && is_ivi_ready_response_recieved_) { + if (is_vr_cooperating_) { + if ((!vr_supported_languages_) || + (hmi_apis::Common_Language::INVALID_ENUM == vr_language_)) { + result = false; + } + } + + if (is_tts_cooperating_) { + if ((!tts_supported_languages_) || + (hmi_apis::Common_Language::INVALID_ENUM == tts_language_)) { + result = false; + } + } + + if (is_ui_cooperating_) { + if ((!ui_supported_languages_) || + (hmi_apis::Common_Language::INVALID_ENUM == ui_language_)) { + result = false; + } + } + + if (is_ivi_cooperating_) { + if (!vehicle_type_) { + result = false; + } + } + } else { + result = false; + } + + return result; +} + +bool HMICapabilities::VerifyImageType(int32_t image_type) const { + if (!display_capabilities_) { + return false; + } + + if (display_capabilities_->keyExists(hmi_response::image_capabilities)) { + const smart_objects::SmartObject& image_caps = display_capabilities_ + ->getElement(hmi_response::image_capabilities); + for (int32_t i = 0; i < image_caps.length(); ++i) { + if (image_caps.getElement(i).asInt() == image_type) { + return true; + } + } + } + + return false; +} + +void HMICapabilities::set_is_vr_cooperating(bool value) { + is_vr_ready_response_recieved_ = true; + is_vr_cooperating_ = value; + if (is_vr_cooperating_) { + utils::SharedPtr<smart_objects::SmartObject> get_language( + MessageHelper::CreateModuleInfoSO(hmi_apis::FunctionID::VR_GetLanguage)); + app_mngr_->ManageHMICommand(get_language); + utils::SharedPtr<smart_objects::SmartObject> get_all_languages( + MessageHelper::CreateModuleInfoSO(hmi_apis::FunctionID::VR_GetSupportedLanguages)); + app_mngr_->ManageHMICommand(get_all_languages); + utils::SharedPtr<smart_objects::SmartObject> get_capabilities( + MessageHelper::CreateModuleInfoSO(hmi_apis::FunctionID::VR_GetCapabilities)); + app_mngr_->ManageHMICommand(get_capabilities); + + MessageHelper::SendHelpVrCommand(); + } +} + +void HMICapabilities::set_is_tts_cooperating(bool value) { + is_tts_ready_response_recieved_ = true; + is_tts_cooperating_ = value; + if (is_tts_cooperating_) { + utils::SharedPtr<smart_objects::SmartObject> get_language( + MessageHelper::CreateModuleInfoSO( + hmi_apis::FunctionID::TTS_GetLanguage)); + app_mngr_->ManageHMICommand(get_language); + utils::SharedPtr<smart_objects::SmartObject> get_all_languages( + MessageHelper::CreateModuleInfoSO( + hmi_apis::FunctionID::TTS_GetSupportedLanguages)); + app_mngr_->ManageHMICommand(get_all_languages); + utils::SharedPtr<smart_objects::SmartObject> get_capabilities( + MessageHelper::CreateModuleInfoSO( + hmi_apis::FunctionID::TTS_GetCapabilities)); + app_mngr_->ManageHMICommand(get_capabilities); + } +} + +void HMICapabilities::set_is_ui_cooperating(bool value) { + is_ui_ready_response_recieved_ = true; + is_ui_cooperating_ = value; + if (is_ui_cooperating_) { + utils::SharedPtr<smart_objects::SmartObject> get_language( + MessageHelper::CreateModuleInfoSO( + hmi_apis::FunctionID::UI_GetLanguage)); + app_mngr_->ManageHMICommand(get_language); + utils::SharedPtr<smart_objects::SmartObject> get_all_languages( + MessageHelper::CreateModuleInfoSO( + hmi_apis::FunctionID::UI_GetSupportedLanguages)); + app_mngr_->ManageHMICommand(get_all_languages); + utils::SharedPtr<smart_objects::SmartObject> get_capabilities( + MessageHelper::CreateModuleInfoSO( + hmi_apis::FunctionID::UI_GetCapabilities)); + app_mngr_->ManageHMICommand(get_capabilities); + } +} + +void HMICapabilities::set_is_navi_cooperating(bool value) { + is_navi_ready_response_recieved_ = true; + is_navi_cooperating_ = value; +} + +void HMICapabilities::set_is_ivi_cooperating(bool value) { + is_ivi_ready_response_recieved_ = true; + is_ivi_cooperating_ = value; + if (is_ivi_cooperating_) { + utils::SharedPtr<smart_objects::SmartObject> get_type( + MessageHelper::CreateModuleInfoSO( + hmi_apis::FunctionID::VehicleInfo_GetVehicleType)); + app_mngr_->ManageHMICommand(get_type); + } +} + +void HMICapabilities::set_attenuated_supported(bool state) { + attenuated_supported_ = state; +} + +void HMICapabilities::set_active_ui_language( + const hmi_apis::Common_Language::eType& language) { + ui_language_ = language; +} + +void HMICapabilities::set_active_vr_language( + const hmi_apis::Common_Language::eType& language) { + vr_language_ = language; +} + +void HMICapabilities::set_active_tts_language( + const hmi_apis::Common_Language::eType& language) { + tts_language_ = language; +} + +void HMICapabilities::set_ui_supported_languages( + const smart_objects::SmartObject& supported_languages) { + if (ui_supported_languages_) { + delete ui_supported_languages_; + } + ui_supported_languages_ = new smart_objects::SmartObject(supported_languages); +} + +void HMICapabilities::set_tts_supported_languages( + const smart_objects::SmartObject& supported_languages) { + if (tts_supported_languages_) { + delete tts_supported_languages_; + } + tts_supported_languages_ = new smart_objects::SmartObject( + supported_languages); +} + +void HMICapabilities::set_vr_supported_languages( + const smart_objects::SmartObject& supported_languages) { + if (vr_supported_languages_) { + delete vr_supported_languages_; + } + vr_supported_languages_ = new smart_objects::SmartObject(supported_languages); +} + +void HMICapabilities::set_display_capabilities( + const smart_objects::SmartObject& display_capabilities) { + if (display_capabilities_) { + delete display_capabilities_; + } + display_capabilities_ = new smart_objects::SmartObject(display_capabilities); +} + +void HMICapabilities::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); +} + +void HMICapabilities::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); +} + +void HMICapabilities::set_button_capabilities( + const smart_objects::SmartObject& button_capabilities) { + if (button_capabilities_) { + delete button_capabilities_; + } + button_capabilities_ = new smart_objects::SmartObject(button_capabilities); +} + +void HMICapabilities::set_vr_capabilities( + const smart_objects::SmartObject& vr_capabilities) { + if (vr_capabilities_) { + delete vr_capabilities_; + } + vr_capabilities_ = new smart_objects::SmartObject(vr_capabilities); +} + +void HMICapabilities::set_speech_capabilities( + const smart_objects::SmartObject& speech_capabilities) { + if (speech_capabilities_) { + delete speech_capabilities_; + } + speech_capabilities_ = new smart_objects::SmartObject(speech_capabilities); +} + +void HMICapabilities::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); +} + +void HMICapabilities::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); +} + +void HMICapabilities::set_vehicle_type( + const smart_objects::SmartObject& vehicle_type) { + if (vehicle_type_) { + delete vehicle_type_; + } + vehicle_type_ = new smart_objects::SmartObject(vehicle_type); +} + +void HMICapabilities::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); +} + +bool HMICapabilities::load_capabilities_from_file() { + std::string json_string; + std::string file_name = + profile::Profile::instance()->hmi_capabilities_file_name(); + + if (!file_system::FileExists(file_name)) { + return false; + } + + if (!file_system::ReadFile(file_name, json_string)) { + return false; + } + + try { + Json::Reader reader_; + Json::Value root_json; + + bool result = reader_.parse(json_string, root_json, false); + if (!result) { + return false; + } + // UI + Json::Value ui = root_json.get("UI", ""); + set_active_ui_language( + languages_enum_values.find(ui.get("language", "").asString())->second); + + Json::Value languages = ui.get("languages", ""); + smart_objects::SmartObject ui_languages = + smart_objects::SmartObject(smart_objects::SmartType_Array); + for (int32_t i = 0; i < languages.size(); i++) { + ui_languages[i] = + languages_enum_values.find(languages[i].asString())->second; + } + set_ui_supported_languages(ui_languages); + + Json::Value display_capabilities = ui.get("displayCapabilities", ""); + smart_objects::SmartObject display_capabilities_so = + smart_objects::SmartObject(smart_objects::SmartType_Map); + display_capabilities_so["displayType"] = + display_capabilities.get("displayType", "").asString(); + + display_capabilities_so["textFields"] = + smart_objects::SmartObject(smart_objects::SmartType_Array); + + Json::Value text_fields = display_capabilities.get("textFields", ""); + for (int32_t i = 0; i < text_fields.size(); i++) { + + // there is an issue with enum to string, therefore used string + display_capabilities_so["textFields"][i]["name"] = + text_fields_enum_name.find(text_fields[i].asString())->first; + } + + display_capabilities_so["mediaClockFormats"] = + smart_objects::SmartObject(smart_objects::SmartType_Array); + Json::Value media_clock_format = + display_capabilities.get("mediaClockFormats", ""); + for (int32_t i = 0; i < media_clock_format.size(); i++) { + display_capabilities_so["mediaClockFormats"][i] = + media_clock_enum_name.find(media_clock_format[i].asString())->second; + } + display_capabilities_so["graphicSupported"] = + display_capabilities.get("graphicSupported", "").asBool(); + + Json::Value image_capabilities = + display_capabilities.get("imageCapabilities", ""); + display_capabilities_so["imageCapabilities"] = + smart_objects::SmartObject(smart_objects::SmartType_Array); + for (int32_t i = 0; i < image_capabilities.size(); i++) { + display_capabilities_so["imageCapabilities"][i] = + image_type_enum.find(image_capabilities[i].asString())->second; + } + set_display_capabilities(display_capabilities_so); + + Json::Value audio_capabilities = ui.get("audioPassThruCapabilities", ""); + smart_objects::SmartObject audio_capabilities_so = + smart_objects::SmartObject(smart_objects::SmartType_Array); + int32_t i = 0; + audio_capabilities_so[i] = + smart_objects::SmartObject(smart_objects::SmartType_Map); + audio_capabilities_so[i]["samplingRate"] = + sampling_rate_enum.find( + audio_capabilities.get("samplingRate", "").asString())->second; + audio_capabilities_so[i]["bitsPerSample"] = + bit_per_sample_enum.find( + audio_capabilities.get("bitsPerSample", "").asString())->second; + audio_capabilities_so[i]["audioType"] = + audio_type_enum.find( + audio_capabilities.get("audioType", "").asString())->second; + set_audio_pass_thru_capabilities(audio_capabilities_so); + + smart_objects::SmartObject hmi_zone_capabilities_so = + smart_objects::SmartObject(smart_objects::SmartType_Array); + int32_t index = 0; + hmi_zone_capabilities_so[index] = + hmi_zone_enum.find(ui.get("hmiZoneCapabilities", "").asString())->second; + set_hmi_zone_capabilities(hmi_zone_capabilities_so); + + Json::Value soft_button_capabilities = ui.get("softButtonCapabilities", ""); + smart_objects::SmartObject soft_button_capabilities_so = + smart_objects::SmartObject(smart_objects::SmartType_Map); + soft_button_capabilities_so["shortPressAvailable"] = + soft_button_capabilities.get("shortPressAvailable", "").asBool(); + soft_button_capabilities_so["longPressAvailable"] = + soft_button_capabilities.get("longPressAvailable", "").asBool(); + soft_button_capabilities_so["upDownAvailable"] = + soft_button_capabilities.get("upDownAvailable", "").asBool(); + soft_button_capabilities_so["imageSupported"] = + soft_button_capabilities.get("imageSupported", "").asBool(); + set_soft_button_capabilities(soft_button_capabilities_so); + + // VR + Json::Value vr = root_json.get("VR", ""); + set_active_vr_language( + languages_enum_values.find(vr.get("language", "").asString())->second); + + languages = vr.get("languages", ""); + smart_objects::SmartObject vr_languages = + smart_objects::SmartObject(smart_objects::SmartType_Array); + for (int32_t i = 0; i < languages.size(); i++) { + vr_languages[i] = + languages_enum_values.find(languages[i].asString())->second; + } + set_vr_supported_languages(ui_languages); + + Json::Value capabilities = vr.get("capabilities", ""); + smart_objects::SmartObject vr_capabilities = + smart_objects::SmartObject(smart_objects::SmartType_Array); + for (int32_t i = 0; i < capabilities.size(); i++) { + vr_capabilities[i] = + vr_enum_capabilities.find(capabilities[i].asString())->second; + } + set_vr_capabilities(vr_capabilities); + + // TTS + Json::Value tts = root_json.get("TTS", ""); + set_active_tts_language( + languages_enum_values.find(tts.get("language", "").asString())->second); + + languages = tts.get("languages", ""); + smart_objects::SmartObject tts_languages = + smart_objects::SmartObject(smart_objects::SmartType_Array); + for (int32_t i = 0; i < languages.size(); i++) { + tts_languages[i] = + languages_enum_values.find(languages[i].asString())->second; + } + set_tts_supported_languages(ui_languages); + set_speech_capabilities( + smart_objects::SmartObject(tts.get("capabilities", "").asString())); + + // Buttons + Json::Value buttons = root_json.get("Buttons", ""); + Json::Value bt_capabilities = buttons.get("capabilities", ""); + smart_objects::SmartObject buttons_capabilities = + smart_objects::SmartObject(smart_objects::SmartType_Array); + for (int32_t i = 0; i < bt_capabilities.size(); i++) { + smart_objects::SmartObject button = + smart_objects::SmartObject(smart_objects::SmartType_Map); + button["name"] = + button_enum_name.find(bt_capabilities[i].get("name", "").asString())->second; + button["shortPressAvailable"] = + bt_capabilities[i].get("shortPressAvailable", "").asBool(); + button["longPressAvailable"] = + bt_capabilities[i].get("longPressAvailable", "").asBool(); + button["upDownAvailable"] = + bt_capabilities[i].get("upDownAvailable", "").asBool(); + + buttons_capabilities[i] = button; + } + set_button_capabilities(buttons_capabilities); + + Json::Value presetBank = buttons.get("presetBankCapabilities", ""); + smart_objects::SmartObject preset_bank = + smart_objects::SmartObject(smart_objects::SmartType_Map); + preset_bank["onScreenPresetsAvailable"] = + presetBank.get("onScreenPresetsAvailable", "").asBool(); + set_preset_bank_capabilities(preset_bank); + + // VehicleType + Json::Value vehicle_info = root_json.get("VehicleInfo", ""); + smart_objects::SmartObject vehicle_type = + smart_objects::SmartObject(smart_objects::SmartType_Map); + vehicle_type["make"] = vehicle_info.get("make", "").asString(); + vehicle_type["model"] = vehicle_info.get("model", "").asString(); + vehicle_type["modelYear"] = vehicle_info.get("modelYear", "").asString(); + vehicle_type["trim"] = vehicle_info.get("trim", "").asString(); + set_vehicle_type(vehicle_type); + + } catch (...) { + return false; + } + return true; +} + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/hmi_command_factory.cc b/SDL_Core/src/components/application_manager/src/hmi_command_factory.cc new file mode 100644 index 000000000..0612d859e --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/hmi_command_factory.cc @@ -0,0 +1,1880 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/hmi_command_factory.h" + +#include "application_manager/message.h" +#include "interfaces/HMI_API.h" + +#include "application_manager/commands/hmi/update_device_list_request.h" +#include "application_manager/commands/hmi/update_device_list_response.h" +#include "application_manager/commands/hmi/on_update_device_list.h" +#include "application_manager/commands/hmi/on_start_device_discovery.h" +#include "application_manager/commands/hmi/update_app_list_request.h" +#include "application_manager/commands/hmi/update_app_list_response.h" +#include "application_manager/commands/hmi/on_find_applications.h" +#include "application_manager/commands/hmi/allow_all_apps_request.h" +#include "application_manager/commands/hmi/allow_all_apps_response.h" +#include "application_manager/commands/hmi/allow_app_request.h" +#include "application_manager/commands/hmi/allow_app_response.h" +#include "application_manager/commands/hmi/activate_app_request.h" +#include "application_manager/commands/hmi/activate_app_response.h" +#include "application_manager/commands/hmi/mixing_audio_supported_request.h" +#include "application_manager/commands/hmi/mixing_audio_supported_response.h" +#include "application_manager/commands/hmi/on_app_activated_notification.h" +#include "application_manager/commands/hmi/on_exit_all_applications_notification.h" +#include "application_manager/commands/hmi/on_exit_application_notification.h" +#include "application_manager/commands/hmi/close_popup_request.h" +#include "application_manager/commands/hmi/close_popup_response.h" +#include "application_manager/commands/hmi/button_get_capabilities_request.h" +#include "application_manager/commands/hmi/button_get_capabilities_response.h" +#include "application_manager/commands/hmi/ui_add_command_request.h" +#include "application_manager/commands/hmi/ui_add_command_response.h" +#include "application_manager/commands/hmi/ui_delete_command_request.h" +#include "application_manager/commands/hmi/ui_delete_command_response.h" +#include "application_manager/commands/hmi/ui_add_submenu_request.h" +#include "application_manager/commands/hmi/ui_add_submenu_response.h" +#include "application_manager/commands/hmi/ui_delete_submenu_request.h" +#include "application_manager/commands/hmi/ui_delete_submenu_response.h" +#include "application_manager/commands/hmi/ui_get_supported_languages_request.h" +#include "application_manager/commands/hmi/ui_get_supported_languages_response.h" +#include "application_manager/commands/hmi/ui_get_language_request.h" +#include "application_manager/commands/hmi/ui_get_language_response.h" +#include "application_manager/commands/hmi/ui_get_capabilities_request.h" +#include "application_manager/commands/hmi/ui_get_capabilities_response.h" +#include "application_manager/commands/hmi/ui_change_registration_request.h" +#include "application_manager/commands/hmi/ui_change_registration_response.h" +#include "application_manager/commands/hmi/ui_show_request.h" +#include "application_manager/commands/hmi/ui_show_response.h" +#include "application_manager/commands/hmi/ui_alert_request.h" +#include "application_manager/commands/hmi/ui_alert_response.h" +#include "application_manager/commands/hmi/ui_is_ready_request.h" +#include "application_manager/commands/hmi/ui_is_ready_response.h" +#include "application_manager/commands/hmi/ui_slider_request.h" +#include "application_manager/commands/hmi/ui_slider_response.h" +#include "application_manager/commands/hmi/ui_set_media_clock_timer_request.h" +#include "application_manager/commands/hmi/ui_set_media_clock_timer_response.h" +#include "application_manager/commands/hmi/ui_set_global_properties_request.h" +#include "application_manager/commands/hmi/ui_set_global_properties_response.h" +#include "application_manager/commands/hmi/ui_scrollable_message_request.h" +#include "application_manager/commands/hmi/ui_scrollable_message_response.h" +#include "application_manager/commands/hmi/ui_set_icon_request.h" +#include "application_manager/commands/hmi/ui_set_icon_response.h" +#include "application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h" +#include "application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h" +#include "application_manager/commands/hmi/ui_end_audio_pass_thru_response.h" +#include "application_manager/commands/hmi/ui_end_audio_pass_thru_request.h" +#include "application_manager/commands/hmi/ui_perform_interaction_request.h" +#include "application_manager/commands/hmi/ui_perform_interaction_response.h" +#include "application_manager/commands/hmi/vr_is_ready_request.h" +#include "application_manager/commands/hmi/vr_is_ready_response.h" +#include "application_manager/commands/hmi/vr_add_command_request.h" +#include "application_manager/commands/hmi/vr_add_command_response.h" +#include "application_manager/commands/hmi/vr_delete_command_request.h" +#include "application_manager/commands/hmi/vr_delete_command_response.h" +#include "application_manager/commands/hmi/vr_change_registration_request.h" +#include "application_manager/commands/hmi/vr_change_registration_response.h" +#include "application_manager/commands/hmi/vr_get_supported_languages_request.h" +#include "application_manager/commands/hmi/vr_get_supported_languages_response.h" +#include "application_manager/commands/hmi/vr_get_language_request.h" +#include "application_manager/commands/hmi/vr_get_language_response.h" +#include "application_manager/commands/hmi/vr_get_capabilities_request.h" +#include "application_manager/commands/hmi/vr_get_capabilities_response.h" +#include "application_manager/commands/hmi/tts_is_ready_request.h" +#include "application_manager/commands/hmi/tts_is_ready_response.h" +#include "application_manager/commands/hmi/tts_change_registration_request.h" +#include "application_manager/commands/hmi/tts_change_registration_response.h" +#include "application_manager/commands/hmi/tts_get_supported_languages_request.h" +#include "application_manager/commands/hmi/tts_get_supported_languages_response.h" +#include "application_manager/commands/hmi/tts_get_language_request.h" +#include "application_manager/commands/hmi/tts_get_language_response.h" +#include "application_manager/commands/hmi/tts_stop_speaking_request.h" +#include "application_manager/commands/hmi/tts_stop_speaking_response.h" +#include "application_manager/commands/hmi/tts_speak_request.h" +#include "application_manager/commands/hmi/tts_speak_response.h" +#include "application_manager/commands/hmi/tts_set_global_properties_request.h" +#include "application_manager/commands/hmi/tts_set_global_properties_response.h" +#include "application_manager/commands/hmi/tts_get_capabilities_request.h" +#include "application_manager/commands/hmi/tts_get_capabilities_response.h" +#include "application_manager/commands/hmi/tts_perform_interaction_request.h" +#include "application_manager/commands/hmi/tts_perform_interaction_response.h" +#include "application_manager/commands/hmi/vi_is_ready_request.h" +#include "application_manager/commands/hmi/vi_is_ready_response.h" +#include "application_manager/commands/hmi/vi_read_did_request.h" +#include "application_manager/commands/hmi/vi_read_did_response.h" + +#ifdef WEB_HMI +#include "application_manager/commands/hmi/vi_get_vehicle_data_request.h" +#include "application_manager/commands/hmi/vi_get_vehicle_data_response.h" +#include "application_manager/commands/hmi/on_vi_vehicle_data_notification.h" +#include "application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h" +#include "application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h" +#include "application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h" +#include "application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h" +#endif // #ifdef WEB_HMI + +#ifdef QT_HMI +#include "application_manager/commands/hmi/vi_get_vehicle_data_request_template.h" +#include "application_manager/commands/hmi/vi_get_vehicle_data_response_template.h" +#include "application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h" +#include "application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h" +#include "application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h" +#include "application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h" +#include "application_manager/commands/hmi/on_vi_gps_data_notification.h" +#include "application_manager/commands/hmi/on_vi_speed_notification.h" +#include "application_manager/commands/hmi/on_vi_rpm_notification.h" +#include "application_manager/commands/hmi/on_vi_fuel_level_notification.h" +#include "application_manager/commands/hmi/on_vi_fuel_level_state_notification.h" +#include "application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h" +#include "application_manager/commands/hmi/on_vi_external_temperature_notification.h" +#include "application_manager/commands/hmi/on_vi_vin_notification.h" +#include "application_manager/commands/hmi/on_vi_prndl_notification.h" +#include "application_manager/commands/hmi/on_vi_tire_pressure_notification.h" +#include "application_manager/commands/hmi/on_vi_odometer_notification.h" +#include "application_manager/commands/hmi/on_vi_belt_status_notification.h" +#include "application_manager/commands/hmi/on_vi_body_information_notification.h" +#include "application_manager/commands/hmi/on_vi_device_status_notification.h" +#include "application_manager/commands/hmi/on_vi_driver_braking_notification.h" +#include "application_manager/commands/hmi/on_vi_wiper_status_notification.h" +#include "application_manager/commands/hmi/on_vi_head_lamp_status_notification.h" +#include "application_manager/commands/hmi/on_vi_engine_torque_notification.h" +#include "application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h" +#include "application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h" +#include "application_manager/commands/hmi/on_vi_my_key_notification.h" +#endif // #ifdef QT_HMI + +#include "application_manager/commands/hmi/vi_get_dtcs_request.h" +#include "application_manager/commands/hmi/vi_get_dtcs_response.h" +#include "application_manager/commands/hmi/vi_diagnostic_message_request.h" +#include "application_manager/commands/hmi/vi_diagnostic_message_response.h" +#include "application_manager/commands/hmi/vi_get_vehicle_type_request.h" +#include "application_manager/commands/hmi/vi_get_vehicle_type_response.h" +#include "application_manager/commands/hmi/navi_is_ready_request.h" +#include "application_manager/commands/hmi/navi_show_constant_tbt_request.h" +#include "application_manager/commands/hmi/navi_show_constant_tbt_response.h" +#include "application_manager/commands/hmi/navi_is_ready_response.h" +#include "application_manager/commands/hmi/navi_alert_maneuver_request.h" +#include "application_manager/commands/hmi/navi_alert_maneuver_response.h" +#include "application_manager/commands/hmi/navi_update_turn_list_request.h" +#include "application_manager/commands/hmi/navi_update_turn_list_response.h" +#include "application_manager/commands/hmi/on_ready_notification.h" +#include "application_manager/commands/hmi/on_device_chosen_notification.h" +#include "application_manager/commands/hmi/on_system_context_notification.h" +#include "application_manager/commands/hmi/on_app_registered_notification.h" +#include "application_manager/commands/hmi/on_app_unregistered_notification.h" +#include "application_manager/commands/hmi/on_driver_distraction_notification.h" +#include "application_manager/commands/hmi/on_play_tone_notification.h" +#include "application_manager/commands/hmi/on_tts_started_notification.h" +#include "application_manager/commands/hmi/on_tts_stopped_notification.h" +#include "application_manager/commands/hmi/on_vr_started_notification.h" +#include "application_manager/commands/hmi/on_vr_stopped_notification.h" +#include "application_manager/commands/hmi/on_vr_command_notification.h" +#include "application_manager/commands/hmi/on_ui_command_notification.h" +#include "application_manager/commands/hmi/on_app_deactivated_notification.h" +#include "application_manager/commands/hmi/on_ui_language_change_notification.h" +#include "application_manager/commands/hmi/on_vr_language_change_notification.h" +#include "application_manager/commands/hmi/on_tts_language_change_notification.h" +#include "application_manager/commands/hmi/on_navi_tbt_client_state_notification.h" +#include "application_manager/commands/hmi/on_button_event_notification.h" +#include "application_manager/commands/hmi/on_button_press_notification.h" +#include "application_manager/commands/hmi/on_show_notification.h" +#include "application_manager/commands/hmi/on_vi_vehicle_data_notification.h" +#include "application_manager/commands/hmi/on_ui_keyboard_input_notification.h" +#include "application_manager/commands/hmi/on_ui_touch_event_notification.h" +#include "application_manager/commands/hmi/on_ui_reset_timeout_notification.h" +#include "application_manager/commands/hmi/navi_start_stream_request.h" +#include "application_manager/commands/hmi/navi_start_stream_response.h" +#include "application_manager/commands/hmi/navi_stop_stream_request.h" +#include "application_manager/commands/hmi/navi_stop_stream_response.h" +#include "application_manager/commands/hmi/audio_start_stream_request.h" +#include "application_manager/commands/hmi/audio_start_stream_response.h" +#include "application_manager/commands/hmi/audio_stop_stream_request.h" +#include "application_manager/commands/hmi/audio_stop_stream_response.h" +#include "application_manager/commands/hmi/on_system_request_notification.h" +#include "application_manager/commands/hmi/ui_set_display_layout_request.h" +#include "application_manager/commands/hmi/ui_set_display_layout_response.h" +#include "application_manager/commands/hmi/on_sdl_close_notification.h" + +namespace application_manager { + +log4cxx::LoggerPtr HMICommandFactory::logger_ = log4cxx::LoggerPtr( + log4cxx::Logger::getLogger("ApplicationManager")); + +CommandSharedPtr HMICommandFactory::CreateCommand( + const MessageSharedPtr& message) { + const int function_id = (*message)[strings::params][strings::function_id] + .asInt(); + LOG4CXX_INFO(logger_, + "HMICommandFactory::CreateCommand function_id: " << function_id); + + CommandSharedPtr command( + new application_manager::commands::CommandImpl(message)); + + bool is_response = false; + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + is_response = true; + LOG4CXX_INFO(logger_, "HMICommandFactory::CreateCommand response"); + } else if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kErrorResponse)) { + is_response = true; + LOG4CXX_INFO(logger_, "HMICommandFactory::CreateCommand error response"); + } else { + LOG4CXX_INFO(logger_, "HMICommandFactory::CreateCommand request"); + } + + switch (function_id) { + case hmi_apis::FunctionID::BasicCommunication_OnStartDeviceDiscovery: { + command.reset(new commands::OnStartDeviceDiscovery(message)); + break; + } + case hmi_apis::FunctionID::BasicCommunication_UpdateDeviceList: { + if (is_response) { + command.reset(new commands::UpdateDeviceListResponse(message)); + } else { + command.reset(new commands::UpdateDeviceListRequest(message)); + } + break; + } + case hmi_apis::FunctionID::BasicCommunication_AllowAllApps: { + if (is_response) { + command.reset(new commands::AllowAllAppsResponse(message)); + } else { + command.reset(new commands::AllowAllAppsRequest(message)); + } + break; + } + case hmi_apis::FunctionID::BasicCommunication_AllowApp: { + if (is_response) { + command.reset(new commands::AllowAppResponse(message)); + } else { + command.reset(new commands::AllowAppRequest(message)); + } + break; + } + case hmi_apis::FunctionID::BasicCommunication_ActivateApp: { + if (is_response) { + command.reset(new commands::ActivateAppResponse(message)); + } else { + command.reset(new commands::ActivateAppRequest(message)); + } + break; + } + case hmi_apis::FunctionID::BasicCommunication_MixingAudioSupported: { + if (is_response) { + command.reset(new commands::MixingAudioSupportedResponse(message)); + } else { + command.reset(new commands::MixingAudioSupportedRequest(message)); + } + break; + } + case hmi_apis::FunctionID::BasicCommunication_OnExitAllApplications: { + command.reset(new commands::OnExitAllApplicationsNotification(message)); + break; + } + case hmi_apis::FunctionID::UI_AddCommand: { + if (is_response) { + command.reset(new commands::UIAddCommandResponse(message)); + } else { + command.reset(new commands::UIAddCommandRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_DeleteCommand: { + if (is_response) { + command.reset(new commands::UIDeleteCommandResponse(message)); + } else { + command.reset(new commands::UIDeleteCommandRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_AddSubMenu: { + if (is_response) { + command.reset(new commands::UIAddSubmenuResponse(message)); + } else { + command.reset(new commands::UIAddSubmenuRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_DeleteSubMenu: { + if (is_response) { + command.reset(new commands::UIDeleteSubmenuResponse(message)); + } else { + command.reset(new commands::UIDeleteSubmenuRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_SetMediaClockTimer: { + if (is_response) { + command.reset(new commands::UISetMediaClockTimerResponse(message)); + } else { + command.reset(new commands::UISetMediaClockTimerRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_PerformInteraction: { + if (is_response) { + command.reset(new commands::UIPerformInteractionResponse(message)); + } else { + command.reset(new commands::UIPerformInteractionRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_SetGlobalProperties: { + if (is_response) { + command.reset(new commands::UISetGlobalPropertiesResponse(message)); + } else { + command.reset(new commands::UISetGlobalPropertiesRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_ScrollableMessage: { + if (is_response) { + command.reset(new commands::UIScrollableMessageResponse(message)); + } else { + command.reset(new commands::UIScrollableMessageRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_SetAppIcon: { + if (is_response) { + command.reset(new commands::UISetIconResponse(message)); + } else { + command.reset(new commands::UISetIconRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_GetSupportedLanguages: { + if (is_response) { + command.reset(new commands::UIGetSupportedLanguagesResponse(message)); + } else { + command.reset(new commands::UIGetSupportedLanguagesRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_GetLanguage: { + if (is_response) { + command.reset(new commands::UIGetLanguageResponse(message)); + } else { + command.reset(new commands::UIGetLanguageRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_GetCapabilities: { + if (is_response) { + command.reset(new commands::UIGetCapabilitiesResponse(message)); + } else { + command.reset(new commands::UIGetCapabilitiesRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_ChangeRegistration: { + if (is_response) { + command.reset(new commands::UIChangeRegistratioResponse(message)); + } else { + command.reset(new commands::UIChangeRegistrationRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_PerformAudioPassThru: { + if (is_response) { + command.reset(new commands::UIPerformAudioPassThruResponse(message)); + } else { + command.reset(new commands::UIPerformAudioPassThruRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_EndAudioPassThru: { + if (is_response) { + command.reset(new commands::UIEndAudioPassThruResponse(message)); + } else { + command.reset(new commands::UIEndAudioPassThruRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_Alert: { + if (is_response) { + command.reset(new commands::UIAlertResponse(message)); + } else { + command.reset(new commands::UIAlertRequest(message)); + } + break; + } + case hmi_apis::FunctionID::VR_IsReady: { + if (is_response) { + command.reset(new commands::VRIsReadyResponse(message)); + } else { + command.reset(new commands::VRIsReadyRequest(message)); + } + break; + } + case hmi_apis::FunctionID::VR_AddCommand: { + if (is_response) { + command.reset(new commands::VRAddCommandResponse(message)); + } else { + command.reset(new commands::VRAddCommandRequest(message)); + } + break; + } + case hmi_apis::FunctionID::VR_DeleteCommand: { + if (is_response) { + command.reset(new commands::VRDeleteCommandResponse(message)); + } else { + command.reset(new commands::VRDeleteCommandRequest(message)); + } + break; + } + case hmi_apis::FunctionID::VR_ChangeRegistration: { + if (is_response) { + command.reset(new commands::VRChangeRegistrationResponse(message)); + } else { + command.reset(new commands::VRChangeRegistrationRequest(message)); + } + break; + } + case hmi_apis::FunctionID::VR_GetSupportedLanguages: { + if (is_response) { + command.reset(new commands::VRGetSupportedLanguagesResponse(message)); + } else { + command.reset(new commands::VRGetSupportedLanguagesRequest(message)); + } + break; + } + case hmi_apis::FunctionID::VR_GetLanguage: { + if (is_response) { + command.reset(new commands::VRGetLanguageResponse(message)); + } else { + command.reset(new commands::VRGetLanguageRequest(message)); + } + break; + } + case hmi_apis::FunctionID::VR_GetCapabilities: { + if (is_response) { + command.reset(new commands::VRGetCapabilitiesResponse(message)); + } else { + command.reset(new commands::VRGetCapabilitiesRequest(message)); + } + break; + } + case hmi_apis::FunctionID::TTS_IsReady: { + if (is_response) { + command.reset(new commands::TTSIsReadyResponse(message)); + } else { + command.reset(new commands::TTSIsReadyRequest(message)); + } + break; + } + case hmi_apis::FunctionID::TTS_ChangeRegistration: { + if (is_response) { + command.reset(new commands::TTSChangeRegistratioResponse(message)); + } else { + command.reset(new commands::TTSChangeRegistrationRequest(message)); + } + break; + } + case hmi_apis::FunctionID::TTS_GetSupportedLanguages: { + if (is_response) { + command.reset(new commands::TTSGetSupportedLanguagesResponse(message)); + } else { + command.reset(new commands::TTSGetSupportedLanguagesRequest(message)); + } + break; + } + case hmi_apis::FunctionID::TTS_StopSpeaking: { + if (is_response) { + command.reset(new commands::TTSStopSpeakingResponse(message)); + } else { + command.reset(new commands::TTSStopSpeakingRequest(message)); + } + break; + } + case hmi_apis::FunctionID::TTS_GetLanguage: { + if (is_response) { + command.reset(new commands::TTSGetLanguageResponse(message)); + } else { + command.reset(new commands::TTSGetLanguageRequest(message)); + } + break; + } + case hmi_apis::FunctionID::TTS_Speak: { + if (is_response) { + command.reset(new commands::TTSSpeakResponse(message)); + } else { + command.reset(new commands::TTSSpeakRequest(message)); + } + break; + } + case hmi_apis::FunctionID::TTS_SetGlobalProperties: { + if (is_response) { + command.reset(new commands::TTSSetGlobalPropertiesResponse(message)); + } else { + command.reset(new commands::TTSSetGlobalPropertiesRequest(message)); + } + break; + } + case hmi_apis::FunctionID::TTS_GetCapabilities: { + if (is_response) { + command.reset(new commands::TTSGetCapabilitiesResponse(message)); + } else { + command.reset(new commands::TTSGetCapabilitiesRequest(message)); + } + break; + } + case hmi_apis::FunctionID::TTS_Started: { + command.reset(new commands::OnTTSStartedNotification(message)); + break; + } + case hmi_apis::FunctionID::TTS_Stopped: { + command.reset(new commands::OnTTSStoppedNotification(message)); + break; + } + case hmi_apis::FunctionID::BasicCommunication_OnAppActivated: { + command.reset(new commands::OnAppActivatedNotification(message)); + break; + } + case hmi_apis::FunctionID::BasicCommunication_OnExitApplication: { + command.reset(new commands::OnExitApplicationNotification(message)); + break; + } + case hmi_apis::FunctionID::UI_Show: { + if (is_response) { + command.reset(new commands::UIShowResponse(message)); + } else { + command.reset(new commands::UIShowRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_Slider: { + if (is_response) { + command.reset(new commands::UISliderResponse(message)); + } else { + command.reset(new commands::UISliderRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_ClosePopUp: { + if (is_response) { + command.reset(new commands::ClosePopupResponse(message)); + } else { + command.reset(new commands::ClosePopupRequest(message)); + } + break; + } + case hmi_apis::FunctionID::UI_IsReady: { + if (is_response) { + command.reset(new commands::UIIsReadyResponse(message)); + } else { + command.reset(new commands::UIIsReadyRequest(message)); + } + break; + } + case hmi_apis::FunctionID::VehicleInfo_IsReady: { + if (is_response) { + command.reset(new commands::VIIsReadyResponse(message)); + } else { + command.reset(new commands::VIIsReadyRequest(message)); + } + break; + } + case hmi_apis::FunctionID::VehicleInfo_ReadDID: { + if (is_response) { + command.reset(new commands::VIReadDIDResponse(message)); + } else { + command.reset(new commands::VIReadDIDRequest(message)); + } + break; + } +#ifdef WEB_HMI + case hmi_apis::FunctionID::VehicleInfo_GetVehicleData: { + if (is_response) { + command.reset(new commands::VIGetVehicleDataResponse(message)); + } else { + command.reset(new commands::VIGetVehicleDataRequest(message)); + } + break; + } +#endif // #ifdef WEB_HMI +#ifdef QT_HMI + case hmi_apis::FunctionID::VehicleInfo_GetGpsData: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetGpsData>(message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetGpsData>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetSpeed: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetSpeed>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetSpeed>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetRpm: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetRpm>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetRpm>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetFuelLevel: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetFuelLevel>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetFuelLevel>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetFuelLevelState: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetFuelLevelState>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetFuelLevelState>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetInstantFuelConsumption: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetInstantFuelConsumption>( + message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetInstantFuelConsumption>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetExternalTemperature: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetExternalTemperature>( + message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetExternalTemperature>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetPrndl: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetPrndl>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetPrndl>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetVin: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetVin>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetVin>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetTirePressure: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetTirePressure>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetTirePressure>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetOdometer: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetOdometer>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetOdometer>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetBeltStatus: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetBeltStatus>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetBeltStatus>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetBodyInformation: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetBodyInformation>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetBodyInformation>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetDeviceStatus: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetDeviceStatus>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetDeviceStatus>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetDriverBraking: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetDriverBraking>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetDriverBraking>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetWiperStatus: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetWiperStatus>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetWiperStatus>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetHeadLampStatus: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetHeadLampStatus>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetHeadLampStatus>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetEngineTorque: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetEngineTorque>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetEngineTorque>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetAccPedalPosition: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetAccPedalPosition>( + message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetAccPedalPosition>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetSteeringWheelAngle: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetSteeringWheelAngle>( + message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetSteeringWheelAngle>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetECallInfo: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetECallInfo>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetECallInfo>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetAirbagStatus: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetAirbagStatus>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetAirbagStatus>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetEmergencyEvent: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetEmergencyEvent>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetEmergencyEvent>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetClusterModeStatus: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetClusterModeStatus>( + message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetClusterModeStatus>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetMyKey: { + if (is_response) + command.reset( + new commands::VIGetVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_GetMyKey>(message)); + else + command.reset( + new commands::VIGetVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_GetMyKey>(message)); + break; + } +#endif // #ifdef QT_HMI + case hmi_apis::FunctionID::VehicleInfo_GetDTCs: { + if (is_response) { + command.reset(new commands::VIGetDTCsResponse(message)); + } else { + command.reset(new commands::VIGetDTCsRequest(message)); + } + break; + } + case hmi_apis::FunctionID::VehicleInfo_DiagnosticMessage: { + if (is_response) { + command.reset(new commands::VIDiagnosticMessageResponse(message)); + } else { + command.reset(new commands::VIDiagnosticMessageRequest(message)); + } + break; + } + case hmi_apis::FunctionID::VehicleInfo_GetVehicleType: { + if (is_response) { + command.reset(new commands::VIGetVehicleTypeResponse(message)); + } else { + command.reset(new commands::VIGetVehicleTypeRequest(message)); + } + break; + } + case hmi_apis::FunctionID::Navigation_IsReady: { + if (is_response) { + command.reset(new commands::NaviIsReadyResponse(message)); + } else { + command.reset(new commands::NaviIsReadyRequest(message)); + } + break; + } + case hmi_apis::FunctionID::Navigation_AlertManeuver: { + if (is_response) { + command.reset(new commands::NaviAlertManeuverResponse(message)); + } else { + command.reset(new commands::NaviAlertManeuverRequest(message)); + } + break; + } + case hmi_apis::FunctionID::Navigation_UpdateTurnList: { + if (is_response) { + command.reset(new commands::NaviUpdateTurnListResponse(message)); + } else { + command.reset(new commands::NaviUpdateTurnListRequest(message)); + } + break; + } + case hmi_apis::FunctionID::Navigation_ShowConstantTBT: { + if (is_response) { + command.reset(new commands::NaviShowConstantTBTResponse(message)); + } else { + command.reset(new commands::NaviShowConstantTBTRequest(message)); + } + break; + } + case hmi_apis::FunctionID::Buttons_GetCapabilities: { + if (is_response) { + command.reset(new commands::ButtonGetCapabilitiesResponse(message)); + } else { + command.reset(new commands::ButtonGetCapabilitiesRequest(message)); + } + break; + } + case hmi_apis::FunctionID::BasicCommunication_PlayTone: { + command.reset(new commands::OnPlayToneNotification(message)); + break; + } + case hmi_apis::FunctionID::BasicCommunication_OnReady: { + command.reset(new commands::OnReadyNotification(message)); + break; + } + case hmi_apis::FunctionID::BasicCommunication_OnDeviceChosen: { + command.reset(new commands::OnDeviceChosenNotification(message)); + break; + } + case hmi_apis::FunctionID::UI_OnSystemContext: { + command.reset(new commands::OnSystemContextNotification(message)); + break; + } + case hmi_apis::FunctionID::UI_OnDriverDistraction: { + command.reset( + new commands::hmi::OnDriverDistractionNotification(message)); + break; + } + case hmi_apis::FunctionID::BasicCommunication_OnUpdateDeviceList: { + command.reset(new commands::OnUpdateDeviceList(message)); + break; + } + case hmi_apis::FunctionID::BasicCommunication_OnAppRegistered: { + command.reset(new commands::OnAppRegisteredNotification(message)); + break; + } + case hmi_apis::FunctionID::BasicCommunication_OnAppUnregistered: { + command.reset(new commands::OnAppUnregisteredNotification(message)); + break; + } + case hmi_apis::FunctionID::BasicCommunication_OnFindApplications: { + command.reset(new commands::OnFindApplications(message)); + break; + } + case hmi_apis::FunctionID::BasicCommunication_UpdateAppList: { + if (is_response) { + command.reset(new commands::UpdateAppListResponse(message)); + } else { + command.reset(new commands::UpdateAppListRequest(message)); + } + break; + } + case hmi_apis::FunctionID::VR_Started: { + command.reset(new commands::OnVRStartedNotification(message)); + break; + } + case hmi_apis::FunctionID::VR_Stopped: { + command.reset(new commands::OnVRStoppedNotification(message)); + break; + } + case hmi_apis::FunctionID::VR_OnCommand: { + command.reset(new commands::OnVRCommandNotification(message)); + break; + } + case hmi_apis::FunctionID::UI_OnCommand: { + command.reset(new commands::OnUICommandNotification(message)); + break; + } + case hmi_apis::FunctionID::BasicCommunication_OnAppDeactivated: { + command.reset(new commands::OnAppDeactivatedNotification(message)); + break; + } + case hmi_apis::FunctionID::UI_OnLanguageChange: { + command.reset(new commands::OnUILanguageChangeNotification(message)); + break; + } + case hmi_apis::FunctionID::VR_OnLanguageChange: { + command.reset(new commands::OnVRLanguageChangeNotification(message)); + break; + } + case hmi_apis::FunctionID::TTS_OnLanguageChange: { + command.reset(new commands::OnTTSLanguageChangeNotification(message)); + break; + } + case hmi_apis::FunctionID::Buttons_OnButtonEvent: { + command.reset(new commands::hmi::OnButtonEventNotification(message)); + break; + } + case hmi_apis::FunctionID::Buttons_OnButtonPress: { + command.reset(new commands::hmi::OnButtonPressNotification(message)); + break; + } +#ifdef WEB_HMI + case hmi_apis::FunctionID::VehicleInfo_SubscribeVehicleData: { + if (is_response) { + command.reset(new commands::VISubscribeVehicleDataResponse(message)); + } else { + command.reset(new commands::VISubscribeVehicleDataRequest(message)); + } + break; + } +#endif // #ifdef WEB_HMI +#ifdef QT_HMI + case hmi_apis::FunctionID::VehicleInfo_SubscribeGps: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeGps>(message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeGps>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed>(message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeRpm: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeRpm>(message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeRpm>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel>(message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel_State: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel_State>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel_State>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeInstantFuelConsumption: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeInstantFuelConsumption>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeInstantFuelConsumption>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeExternalTemperature: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeExternalTemperature>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeExternalTemperature>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribePrndl: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribePrndl>(message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribePrndl>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeVin: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeVin>(message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeVin>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeTirePressure: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeTirePressure>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeTirePressure>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeOdometer: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeOdometer>(message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeOdometer>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeBeltStatus: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeBeltStatus>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeBeltStatus>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeBodyInformation: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeBodyInformation>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeBodyInformation>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeDeviceStatus: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeDeviceStatus>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeDeviceStatus>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeDriverBraking: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeDriverBraking>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeDriverBraking>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeWiperStatus: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeWiperStatus>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeWiperStatus>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeHeadLampStatus: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeHeadLampStatus>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeHeadLampStatus>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeEngineTorque: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeEngineTorque>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeEngineTorque>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeAccPedalPosition: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeAccPedalPosition>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeAccPedalPosition>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeSteeringWheelAngle: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeSteeringWheelAngle>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeSteeringWheelAngle>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeECallInfo: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeECallInfo>(message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeECallInfo>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeAirbagStatus: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeAirbagStatus>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeAirbagStatus>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeEmergencyEvent: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeEmergencyEvent>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeEmergencyEvent>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeClusterModeStatus: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeClusterModeStatus>( + message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeClusterModeStatus>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey: { + if (is_response) + command.reset( + new commands::VISubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey>(message)); + else + command.reset( + new commands::VISubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey>(message)); + break; + } +#endif // #ifdef QT_HMI +#ifdef WEB_HMI + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeVehicleData: { + if (is_response) { + command.reset(new commands::VIUnsubscribeVehicleDataResponse(message)); + } else { + command.reset(new commands::VIUnsubscribeVehicleDataRequest(message)); + } + break; + } +#endif // #ifdef WEB_HMI +#ifdef QT_HMI + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeGps: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeGps>(message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeGps>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeSpeed: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeSpeed>(message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeSpeed>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeRpm: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeRpm>(message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeRpm>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel_State: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel_State>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel_State>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeInstantFuelConsumption: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeInstantFuelConsumption>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeInstantFuelConsumption>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeExternalTemperature: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeExternalTemperature>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeExternalTemperature>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribePrndl: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribePrndl>(message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribePrndl>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeVin: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeVin>(message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeVin>(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeTirePressure: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeTirePressure>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeTirePressure>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeOdometer: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeOdometer>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeOdometer>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeBeltStatus: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeBeltStatus>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeBeltStatus>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeBodyInformation: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeBodyInformation>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeBodyInformation>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeDeviceStatus: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeDeviceStatus>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeDeviceStatus>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeDriverBraking: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeDriverBraking>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeDriverBraking>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeWiperStatus: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeWiperStatus>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeWiperStatus>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeHeadLampStatus: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeHeadLampStatus>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeHeadLampStatus>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeEngineTorque: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeEngineTorque>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeEngineTorque>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeAccPedalPosition: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeAccPedalPosition>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeAccPedalPosition>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeSteeringWheelAngle: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeSteeringWheelAngle>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeSteeringWheelAngle>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeECallInfo: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeECallInfo>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeECallInfo>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeAirbagStatus: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeAirbagStatus>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeAirbagStatus>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeEmergencyEvent: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeEmergencyEvent>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeEmergencyEvent>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeClusterModeStatus: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeClusterModeStatus>( + message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeClusterModeStatus>( + message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_UnsubscribeMyKey: { + if (is_response) + command.reset( + new commands::VIUnsubscribeVehicleDataResponseTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeMyKey>(message)); + else + command.reset( + new commands::VIUnsubscribeVehicleDataRequestTemplate< + hmi_apis::FunctionID::VehicleInfo_UnsubscribeMyKey>(message)); + break; + } +#endif // #ifdef QT_HMI +#ifdef WEB_HMI + case hmi_apis::FunctionID::VehicleInfo_OnVehicleData: { + command.reset(new commands::OnVIVehicleDataNotification(message)); + break; + } +#endif // #ifdef WEB_HMI +#ifdef QT_HMI + case hmi_apis::FunctionID::VehicleInfo_OnGpsData: { + command.reset(new commands::OnVIGpsDataNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnSpeed: { + command.reset(new commands::OnVISpeedNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnRpm: { + command.reset(new commands::OnVIRpmNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnFuelLevel: { + command.reset(new commands::OnVIFuelLevelNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnFuelLevelState: { + command.reset(new commands::OnVIFuelLevelStateNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnInstantFuelConsumption: { + command.reset( + new commands::OnVIInstantFuelConsumptionNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnExternalTemperature: { + command.reset(new commands::OnVIExternalTemperatureNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnVin: { + command.reset(new commands::OnVIVinNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnPrndl: { + command.reset(new commands::OnVIPrndlNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnTirePressure: { + command.reset(new commands::OnVITirePressureNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnOdometer: { + command.reset(new commands::OnVIOdometerNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnBeltStatus: { + command.reset(new commands::OnVIBeltStatusNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnBodyInformation: { + command.reset(new commands::OnVIBodyInformationNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnDeviceStatus: { + command.reset(new commands::OnVIDeviceStatusNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnDriverBraking: { + command.reset(new commands::OnVIDriverBrakingNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnWiperStatus: { + command.reset(new commands::OnVIWiperStatusNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnHeadLampStatus: { + command.reset(new commands::OnVIHeadLampStatusNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnEngineTorque: { + command.reset(new commands::OnVIEngineTorqueNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnAccPedalPosition: { + command.reset(new commands::OnVIAccPedalPositionNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnSteeringWheelAngle: { + command.reset(new commands::OnVISteeringWheelAngleNotification(message)); + break; + } + case hmi_apis::FunctionID::VehicleInfo_OnMyKey: { + command.reset(new commands::OnVIMyKeyNotification(message)); + break; + } +#endif // #ifdef QT_HMI + case hmi_apis::FunctionID::UI_ShowNotification: { + command.reset(new commands::OnShowNotification(message)); + break; + } + case hmi_apis::FunctionID::Navigation_OnTBTClientState: { + command.reset(new commands::OnNaviTBTClientStateNotification(message)); + break; + } + case hmi_apis::FunctionID::UI_OnKeyboardInput: { + command.reset(new commands::hmi::OnUIKeyBoardInputNotification(message)); + break; + } + case hmi_apis::FunctionID::UI_OnTouchEvent: { + command.reset(new commands::hmi::OnUITouchEventNotification(message)); + break; + } + case hmi_apis::FunctionID::UI_OnResetTimeout: { + command.reset(new commands::hmi::OnUIResetTimeoutNotification(message)); + break; + } + case hmi_apis::FunctionID::Navigation_StartStream: { + if (is_response) { + command.reset(new commands::NaviStartStreamResponse(message)); + } else { + command.reset(new commands::NaviStartStreamRequest(message)); + } + break; + } + case hmi_apis::FunctionID::Navigation_StopStream: { + if (is_response) { + command.reset(new commands::NaviStopStreamResponse(message)); + } else { + command.reset(new commands::NaviStopStreamRequest(message)); + } + break; + } + case hmi_apis::FunctionID::Navigation_StartAudioStream: { + if (is_response) { + command.reset(new commands::AudioStartStreamResponse(message)); + } else { + command.reset(new commands::AudioStartStreamRequest(message)); + } + break; + } + case hmi_apis::FunctionID::Navigation_StopAudioStream: { + if (is_response) { + command.reset(new commands::AudioStopStreamResponse(message)); + } else { + command.reset(new commands::AudioStopStreamRequest(message)); + } + break; + } + case hmi_apis::FunctionID::TTS_PerformInteraction: { + if (is_response) { + command.reset(new commands::TTSPerformInteractionResponse(message)); + } else { + command.reset(new commands::TTSPerformInteractionRequest(message)); + } + break; + } + case hmi_apis::FunctionID::BasicCommunication_OnSystemRequest: { + command.reset(new commands::OnSystemRequestNotification(message)); + break; + } + case hmi_apis::FunctionID::UI_SetDisplayLayout: { + if (is_response) { + command.reset(new commands::UiSetDisplayLayoutResponse(message)); + } else { + command.reset(new commands::UiSetDisplayLayoutRequest(message)); + } + break; + } + case hmi_apis::FunctionID::BasicCommunication_OnSDLClose: { + command.reset(new commands::OnSDLCloseNotification(message)); + break; + } + } + + return command; +} + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/message.cc b/SDL_Core/src/components/application_manager/src/message.cc new file mode 100644 index 000000000..c5aef9790 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/message.cc @@ -0,0 +1,186 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/message.h" + +namespace { +bool BinaryDataPredicate(uint8_t i, uint8_t j) { + return (i == j); +} +} + +namespace application_manager { + +MessageType MessageTypeFromRpcType(protocol_handler::RpcType rpc_type) { + switch (rpc_type) { + case protocol_handler::kRpcTypeRequest: + return kRequest; + case protocol_handler::kRpcTypeResponse: + return kResponse; + case protocol_handler::kRpcTypeNotification: + return kNotification; + case protocol_handler::kRpcTypeReserved: + default: + DCHECK(false); + return kUnknownType; + } +} + +Message::Message(protocol_handler::MessagePriority priority) + : function_id_(0), + type_(kUnknownType), + priority_(priority), + correlation_id_(0), + connection_key_(0), + binary_data_(NULL), + version_(kUnknownProtocol) { +} + +Message::Message(const Message& message) + : priority_(message.priority_) { + *this = message; +} + +Message& Message::operator=(const Message& message) { + set_function_id(message.function_id_); + set_correlation_id(message.correlation_id_); + set_connection_key(message.connection_key_); + set_message_type(message.type_); + if (message.binary_data_) { + set_binary_data(message.binary_data_); + } + set_json_message(message.json_message_); + set_protocol_version(message.protocol_version()); + priority_ = message.priority_; + + return *this; +} + +bool Message::operator==(const Message& message) { + bool function_id = function_id_ == message.function_id_; + bool correlation_id = correlation_id_ == message.correlation_id_; + bool connection_key = connection_key_ == message.connection_key_; + bool type = type_ == message.type_; + bool json_message = json_message_ == message.json_message_; + bool version = version_ == message.version_; + + bool binary_data = std::equal(binary_data_->begin(), binary_data_->end(), + message.binary_data_->begin(), + BinaryDataPredicate); + + return function_id && correlation_id && connection_key && type && binary_data + && json_message && version; +} + +Message::~Message() { + if (binary_data_) { + delete binary_data_; + } +} + +int32_t Message::function_id() const { + return function_id_; +} + +int32_t Message::correlation_id() const { + return correlation_id_; +} + +int32_t Message::connection_key() const { + return connection_key_; +} + +MessageType Message::type() const { + return type_; +} + +ProtocolVersion Message::protocol_version() const { + return version_; +} + +const std::string& Message::json_message() const { + return json_message_; +} + +const BinaryData* Message::binary_data() const { + return binary_data_; +} + +bool Message::has_binary_data() const { + return (binary_data_ != NULL); +} + +void Message::set_function_id(int32_t id) { + function_id_ = id; +} + +void Message::set_correlation_id(int32_t id) { + correlation_id_ = id; +} + +void Message::set_connection_key(int32_t key) { + connection_key_ = key; +} + +void Message::set_message_type(MessageType type) { + type_ = type; +} + +void Message::set_binary_data(BinaryData* data) { + if (NULL == data) { + NOTREACHED(); + return; + } + + if (binary_data_) { + delete binary_data_; + } + + binary_data_ = data; +} + +void Message::set_json_message(const std::string& json_message) { + json_message_ = json_message; +} + +void Message::set_protocol_version(ProtocolVersion version) { + version_ = version; +} + +const smart_objects::SmartObject &Message::smart_object() const { + return smart_object_; +} + +void Message::set_smart_object(const smart_objects::SmartObject& object) { + smart_object_ = object; +} +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/message_helper.cc b/SDL_Core/src/components/application_manager/src/message_helper.cc new file mode 100644 index 000000000..9e7bf4842 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/message_helper.cc @@ -0,0 +1,1593 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include <set> +#include <string> +#include <algorithm> + +#include "utils/macro.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/message_helper.h" +#include "application_manager/commands/command_impl.h" +#include "connection_handler/connection_handler_impl.h" +#include "application_manager/application.h" +#include "config_profile/profile.h" +#include "utils/file_system.h" +#include "interfaces/MOBILE_API.h" + + +namespace { + +log4cxx::LoggerPtr g_logger = + log4cxx::LoggerPtr(log4cxx::Logger::getLogger("ApplicationManager")); + +hmi_apis::Common_Language::eType ToCommonLanguage( + mobile_apis::Language::eType mobile_language) { + // Update this check if mobile_api::Language + // or hmi_apis::Common_Language changes. + // Or, better, generate functions like this from XML + long lang_val = long(mobile_language); + long max_common_lang_val = long(hmi_apis::Common_Language::NO_NO); + long max_mobile_lang = long(mobile_apis::Language::NO_NO); + if (max_common_lang_val != max_mobile_lang) { + LOG4CXX_ERROR(g_logger, "Mapping between Common_Language and Language" + " has changed! Please update converter function"); + } + if (lang_val > max_common_lang_val) { + LOG4CXX_ERROR(g_logger, "Non-convertable language ID"); + } + return hmi_apis::Common_Language::eType(lang_val); +} + +} + +namespace application_manager { + +namespace { + +bool ValidateSoftButtons(smart_objects::SmartObject& soft_buttons) { + using namespace smart_objects; + for (size_t i = 0; i < soft_buttons.length(); ++i) { + SmartObject& button = soft_buttons[i]; + + // Check if image parameter is valid + if (button.keyExists(strings::image)) { + SmartObject& buttonImage = button[strings::image]; + + // Image name must not be empty + std::string file_name = buttonImage[strings::value].asString(); + file_name.erase(remove(file_name.begin(), file_name.end(), ' '), file_name.end()); + if (file_name.empty()) { + return false; + } + } + } + return true; +} + +} +std::pair<const char*, VehicleDataType> kVehicleDataInitializer[] = { +std::make_pair(strings::gps, VehicleDataType::GPS), +std::make_pair(strings::speed, VehicleDataType::SPEED), +std::make_pair(strings::rpm, VehicleDataType::RPM), +std::make_pair(strings::fuel_level, VehicleDataType::FUELLEVEL), +std::make_pair(strings::fuel_level_state, VehicleDataType::FUELLEVEL_STATE), +std::make_pair(strings::instant_fuel_consumption, VehicleDataType::FUELCONSUMPTION), +std::make_pair(strings::external_temp, VehicleDataType::EXTERNTEMP), +std::make_pair(strings::vin, VehicleDataType::VIN ), +std::make_pair(strings::prndl, VehicleDataType::PRNDL), +std::make_pair(strings::tire_pressure, VehicleDataType::TIREPRESSURE), +std::make_pair(strings::odometer, VehicleDataType::ODOMETER), +std::make_pair(strings::belt_status, VehicleDataType::BELTSTATUS), +std::make_pair(strings::body_information, VehicleDataType::BODYINFO), +std::make_pair(strings::device_status, VehicleDataType::DEVICESTATUS), +std::make_pair(strings::driver_braking, VehicleDataType::BRAKING), +std::make_pair(strings::wiper_status, VehicleDataType::WIPERSTATUS), +std::make_pair(strings::head_lamp_status, VehicleDataType::HEADLAMPSTATUS), +std::make_pair(strings::e_call_info, VehicleDataType::ECALLINFO), +std::make_pair(strings::airbag_status, VehicleDataType::AIRBAGSTATUS), +std::make_pair(strings::emergency_event, VehicleDataType::EMERGENCYEVENT), +std::make_pair(strings::cluster_mode_status, VehicleDataType::CLUSTERMODESTATUS), +std::make_pair(strings::my_key, VehicleDataType::MYKEY), +/* + NOT DEFINED in mobile API + std::make_pair(strings::gps, VehicleDataType::BATTVOLTAGE), + */ +std::make_pair(strings::engine_torque, VehicleDataType::ENGINETORQUE ), +std::make_pair(strings::acc_pedal_pos, VehicleDataType::ACCPEDAL), +std::make_pair(strings::steering_wheel_angle, VehicleDataType::STEERINGWHEEL), +}; + +const VehicleData MessageHelper::vehicle_data_(kVehicleDataInitializer, + kVehicleDataInitializer + + ARRAYSIZE(kVehicleDataInitializer)); + + +#ifdef QT_HMI +namespace { + struct VehicleInfo_Requests { + hmi_apis::FunctionID::eType func_id; + const char* str; + }; + static VehicleInfo_Requests ivi_subrequests[] = { + { hmi_apis::FunctionID::VehicleInfo_SubscribeGps, strings::gps}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed, strings::speed}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeRpm, strings::rpm}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel, strings::fuel_level}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel_State, strings::fuel_level_state}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeInstantFuelConsumption, strings::instant_fuel_consumption}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeExternalTemperature, strings::external_temp}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeVin, strings::vin}, + { hmi_apis::FunctionID::VehicleInfo_SubscribePrndl, strings::prndl}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeTirePressure, strings::tire_pressure}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeOdometer, strings::odometer}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeBeltStatus, strings::belt_status}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeBodyInformation, strings::body_information}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeDeviceStatus, strings::device_status}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeDriverBraking, strings::driver_braking}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeWiperStatus, strings::wiper_status}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeHeadLampStatus, strings::head_lamp_status}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeEngineTorque, strings::engine_torque}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeAccPedalPosition, strings::acc_pedal_pos}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeSteeringWheelAngle, strings::steering_wheel_angle}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeECallInfo, strings::e_call_info}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeAirbagStatus, strings::airbag_status}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeEmergencyEvent, strings::emergency_event}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeClusterModeStatus, strings::cluster_mode_status}, + { hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey, strings::my_key}, + }; +} +#endif // #ifdef QT_HMI + + +void MessageHelper::SendHMIStatusNotification( + const Application& application_impl) { + smart_objects::SmartObject* notification = new smart_objects::SmartObject; + if (!notification) { + // TODO(VS): please add logger. + return; + } + smart_objects::SmartObject& message = *notification; + + message[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_api::FunctionID::OnHMIStatusID); + + message[strings::params][strings::message_type] = + static_cast<int32_t>(application_manager::MessageType::kNotification); + + message[strings::params][strings::connection_key] = + static_cast<int32_t>(application_impl.app_id()); + + message[strings::msg_params][strings::hmi_level] = + static_cast<int32_t>(application_impl.hmi_level()); + + message[strings::msg_params][strings::audio_streaming_state] = + static_cast<int32_t>(application_impl.audio_streaming_state()); + + message[strings::msg_params][strings::system_context] = + static_cast<int32_t>(application_impl.system_context()); + + DCHECK(ApplicationManagerImpl::instance()->ManageMobileCommand(notification)); +} + +void MessageHelper::SendOnAppRegisteredNotificationToHMI( + const Application& application_impl) { + smart_objects::SmartObject* notification = new smart_objects::SmartObject; + if (!notification) { + // TODO(VS): please add logger. + return; + } + smart_objects::SmartObject& message = *notification; + + message[strings::params][strings::function_id] = + static_cast<int32_t>(hmi_apis::FunctionID::BasicCommunication_OnAppRegistered); + + message[strings::params][strings::message_type] = + static_cast<int32_t>(application_manager::MessageType::kNotification); + message[strings::msg_params][strings::application][strings::app_name] = + application_impl.name(); + + const smart_objects::SmartObject* ngn_media_screen_name = + application_impl.ngn_media_screen_name(); + + if (ngn_media_screen_name) { + message[strings::msg_params][strings::application] + [strings::ngn_media_screen_app_name] = *ngn_media_screen_name; + } + + message[strings::msg_params][strings::application][strings::icon] = + application_impl.app_icon_path(); + + std::string dev_name = ApplicationManagerImpl::instance()->GetDeviceName( + application_impl.device()); + message[strings::msg_params][strings::application][strings::device_name] = + dev_name; + + message[strings::msg_params][strings::application][strings::app_id] = + application_impl.app_id(); + + message[strings::msg_params][strings::application][strings::hmi_display_language_desired] = + static_cast<int32_t>(application_impl.ui_language()); + + message[strings::msg_params][strings::application][strings::is_media_application] = + application_impl.is_media_application(); + + const smart_objects::SmartObject* app_type = application_impl.app_types(); + + if (app_type) { + message[strings::msg_params][strings::application][strings::app_type] = + *app_type; + } + if (application_impl.vr_synonyms()) { + message[strings::msg_params][strings::vr_synonyms] = *(application_impl.vr_synonyms()); + } + if (application_impl.tts_name()) { + message[strings::msg_params][strings::tts_name] = *(application_impl.tts_name()); + } + DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(notification)); +} + +smart_objects::SmartObject* MessageHelper::CreateGeneralVrCommand() { + smart_objects::SmartObject* vr_help_command = new smart_objects::SmartObject( + smart_objects::SmartType_Array); + if (!vr_help_command) { + return NULL; + } + smart_objects::SmartObject& help_object = *vr_help_command; + const std::vector<std::string>& vr_general_cmds = profile::Profile::instance() + ->vr_commands(); + for (uint32_t i = 0; i < vr_general_cmds.size(); ++i) { + help_object[i] = vr_general_cmds[i]; + } + return vr_help_command; +} + +void MessageHelper::SendHelpVrCommand() { + smart_objects::SmartObject* vr_help_command = CreateGeneralVrCommand(); + if (!vr_help_command) { + return; + } + uint32_t max_cmd_id = profile::Profile::instance()->max_cmd_id(); + SendAddVRCommandToHMI(max_cmd_id + 1, *vr_help_command, 0); +} + +smart_objects::SmartObject* MessageHelper::GetHashUpdateNotification(const uint32_t app_id) { + + LOG4CXX_INFO(g_logger, "GetHashUpdateNotification" << app_id); + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + DCHECK(app.get()); + + smart_objects::SmartObject* message = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + (*message)[strings::params][strings::function_id] = + mobile_apis::FunctionID::OnHashChangeID; + (*message)[strings::params][strings::connection_key] = app_id; + + return message; +} + +void MessageHelper::SendHashUpdateNotification(const uint32_t app_id) { + LOG4CXX_INFO(g_logger, "SendHashUpdateNotification"); + + smart_objects::SmartObject* so = GetHashUpdateNotification(app_id); + PrintSmartObject(*so); + DCHECK(ApplicationManagerImpl::instance()->ManageMobileCommand(so)); +} + +void MessageHelper::SendRemoveVrCommandsOnUnregisterApp(ApplicationConstSharedPtr app) { + uint32_t max_cmd_id = profile::Profile::instance()->max_cmd_id(); + + if (app->vr_synonyms()) { + SendRemoveCommandToHMI( + static_cast<int32_t>(hmi_apis::FunctionID::VR_DeleteCommand), + max_cmd_id + app->app_id(), app->app_id()); + } +} + +void MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile( + int32_t connection_key, + mobile_api::AppInterfaceUnregisteredReason::eType reason) { + smart_objects::SmartObject* notification = new smart_objects::SmartObject; + if (!notification) { + // TODO(VS): please add logger. + return; + } + smart_objects::SmartObject& message = *notification; + + message[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_api::FunctionID::OnAppInterfaceUnregisteredID); + + message[strings::params][strings::message_type] = + static_cast<int32_t>(kNotification); + + message[strings::params][strings::connection_key] = connection_key; + + message[strings::msg_params][strings::reason] = + static_cast<int32_t>(reason); + + DCHECK(ApplicationManagerImpl::instance()->ManageMobileCommand(notification)); +} + +const VehicleData& MessageHelper::vehicle_data() { + return vehicle_data_; +} + +smart_objects::SmartObject* MessageHelper::CreateBlockedByPoliciesResponse( + mobile_apis::FunctionID::eType function_id, + mobile_apis::Result::eType result, uint32_t correlation_id, + uint32_t connection_key) { + smart_objects::SmartObject* response = new smart_objects::SmartObject; + if (!response) { + return NULL; + } + + (*response)[strings::params][strings::function_id] = static_cast<int>(function_id); + (*response)[strings::params][strings::message_type] = static_cast<int>(kResponse); + (*response)[strings::msg_params][strings::success] = false; + (*response)[strings::msg_params][strings::result_code] = static_cast<int>(result); + (*response)[strings::params][strings::correlation_id] = correlation_id; + (*response)[strings::params][strings::connection_key] = connection_key; + (*response)[strings::params][strings::protocol_type] = + commands::CommandImpl::mobile_protocol_type_; + (*response)[strings::params][strings::protocol_version] = + static_cast<int>(kV2); + return response; +} + +smart_objects::SmartObject* MessageHelper::CreateDeviceListSO( + const connection_handler::DeviceList& devices) { + smart_objects::SmartObject* device_list_so = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + + if (NULL == device_list_so) { + return NULL; + } + + (*device_list_so)[strings::device_list] = smart_objects::SmartObject( + smart_objects::SmartType_Array); + smart_objects::SmartObject& list_so = (*device_list_so)[strings::device_list]; + int32_t index = 0; + for (connection_handler::DeviceList::const_iterator it = devices.begin(); + devices.end() != it; ++it) { + const connection_handler::Device& d = static_cast<connection_handler::Device>(it->second); + list_so[index][strings::name] = + d.user_friendly_name(); + list_so[index][strings::id] = it->second.device_handle(); + ++index; + } + return device_list_so; +} + +smart_objects::SmartObject* MessageHelper::CreateModuleInfoSO( + uint32_t function_id) { + smart_objects::SmartObject* module_info = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + if (NULL == module_info) { + return NULL; + } + smart_objects::SmartObject& object = *module_info; + object[strings::params][strings::message_type] = + static_cast<int>(kRequest); + object[strings::params][strings::function_id] = + static_cast<int>(function_id); + object[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + object[strings::msg_params] = smart_objects::SmartObject( + smart_objects::SmartType_Map); + return module_info; +} + +smart_objects::SmartObject* MessageHelper::CreateSetAppIcon( + const std::string& path_to_icon, uint32_t app_id) { + smart_objects::SmartObject* set_icon = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + + if (!set_icon) { + return NULL; + } + + smart_objects::SmartObject& object = *set_icon; + object[strings::sync_file_name][strings::value] = path_to_icon; + // TODO(PV): need to store actual image type + object[strings::sync_file_name][strings::image_type] = + static_cast<int>(mobile_api::ImageType::DYNAMIC); + object[strings::app_id] = app_id; + + return set_icon; +} + +bool MessageHelper::SendIVISubscribtions(const uint32_t app_id) { + LOG4CXX_INFO(g_logger, " MessageHelper::SendIVISubscribtions "); + + bool succes = true; + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + DCHECK(app.get()); + + SmartObjectList requests = GetIVISubscribtionRequests(app_id); + for (SmartObjectList::const_iterator it = requests.begin(); + it != requests.end(); ++it) { + if (!ApplicationManagerImpl::instance()->ManageHMICommand(*it)) { + succes = false; + } + } + return succes; +} + +MessageHelper::SmartObjectList MessageHelper::GetIVISubscribtionRequests(const uint32_t app_id) { + LOG4CXX_INFO(g_logger, " MessageHelper::GetIVISubscribtionRequests "); + + ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id); + DCHECK(app); + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::app_id] = app_id; + const VehicleData& vehicle_data = MessageHelper::vehicle_data_; + VehicleData::const_iterator ivi_it = vehicle_data.begin(); + const std::set<uint32_t>& subscribes = app->SubscribesIVI(); + + for (; vehicle_data.end() != ivi_it; ++ivi_it) { + uint32_t type_id = static_cast<int>(ivi_it->second); + if (subscribes.end() != subscribes.find(type_id)) { + std::string key_name = ivi_it->first; + msg_params[key_name] = true; + } + } + + SmartObjectList hmi_requests; +#ifdef WEB_HMI + smart_objects::SmartObject* request = MessageHelper::CreateModuleInfoSO( + hmi_apis::FunctionID::VehicleInfo_SubscribeVehicleData); + (*request)[strings::msg_params] = msg_params; + hmi_requests.push_back(request); +#endif // #ifdef WEB_HMI + +#ifdef QT_HMI + //Generate list of ivi_subrequests + for (int i = 0; i < sizeof(ivi_subrequests) / sizeof(ivi_subrequests[0]); ++i) { + const VehicleInfo_Requests& sr = ivi_subrequests[i]; + if (true == msg_params.keyExists(sr.str) + && true == msg_params[sr.str].asBool()) { + smart_objects::SmartObject* request = MessageHelper::CreateModuleInfoSO( + sr.func_id); + (*request)[strings::msg_params] = msg_params; + hmi_requests.push_back(request); + } + } +#endif // #ifdef QT_HMI + return hmi_requests; +} + +void MessageHelper::SendAppDataToHMI(ApplicationConstSharedPtr app) { + uint32_t id = app->app_id(); + + utils::SharedPtr<smart_objects::SmartObject> set_app_icon( + new smart_objects::SmartObject); + if (set_app_icon) { + smart_objects::SmartObject& so_to_send = *set_app_icon; + so_to_send[strings::params][strings::function_id] = + static_cast<int>(hmi_apis::FunctionID::UI_SetAppIcon); + so_to_send[strings::params][strings::message_type] = + static_cast<int>(hmi_apis::messageType::request); + so_to_send[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + so_to_send[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + so_to_send[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + + so_to_send[strings::msg_params] = smart_objects::SmartObject( + smart_objects::SmartType_Map); + smart_objects::SmartObject* msg_params = MessageHelper::CreateSetAppIcon( + app->app_icon_path(), id); + + if (msg_params) { + so_to_send[strings::msg_params] = *msg_params; + } + // TODO(PV): appropriate handling of result + DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(set_app_icon)); + } + + SendGlobalPropertiesToHMI(app); + SendShowRequestToHMI(app); + SendAddCommandRequestToHMI(app); +} + +void MessageHelper::SendGlobalPropertiesToHMI(ApplicationConstSharedPtr app) { + DCHECK(app.get()); + + SmartObjectList requests = CreateGlobalPropertiesRequestsToHMI(app); + for (SmartObjectList::const_iterator it = requests.begin(); + it != requests.end(); ++it) { + DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(*it)) + } +} + +MessageHelper::SmartObjectList MessageHelper::CreateGlobalPropertiesRequestsToHMI(ApplicationConstSharedPtr app) { + + SmartObjectList requests; + DCHECK(app.get()); + + // UI global properties + + if (app->vr_help_title() || app->vr_help()) { + smart_objects::SmartObject* ui_global_properties = + new smart_objects::SmartObject(smart_objects::SmartType_Map); + + if (!ui_global_properties) { + return requests; + } + + (*ui_global_properties)[strings::params][strings::function_id] = + static_cast<int>(hmi_apis::FunctionID::UI_SetGlobalProperties); + (*ui_global_properties)[strings::params][strings::message_type] = + static_cast<int>(hmi_apis::messageType::request); + (*ui_global_properties)[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + (*ui_global_properties)[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + (*ui_global_properties)[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + + smart_objects::SmartObject ui_msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + if (app->vr_help_title()) { + ui_msg_params[strings::vr_help_title] = (*app->vr_help_title()); + } + if (app->vr_help()) { + ui_msg_params[strings::vr_help] = (*app->vr_help()); + } + ui_msg_params[strings::app_id] = app->app_id(); + + (*ui_global_properties)[strings::msg_params] = ui_msg_params; + + requests.push_back(ui_global_properties); + } + + // TTS global properties + if (app->help_prompt() || app->timeout_prompt()) { + smart_objects::SmartObject* tts_global_properties = + new smart_objects::SmartObject(smart_objects::SmartType_Map); + + if (!tts_global_properties) { + return requests; + } + + (*tts_global_properties)[strings::params][strings::function_id] = + static_cast<int>(hmi_apis::FunctionID::TTS_SetGlobalProperties); + (*tts_global_properties)[strings::params][strings::message_type] = + static_cast<int>(hmi_apis::messageType::request); + (*tts_global_properties)[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + (*tts_global_properties)[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + (*tts_global_properties)[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + + smart_objects::SmartObject tts_msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + if (app->help_prompt()) { + tts_msg_params[strings::help_prompt] = (*app->help_prompt()); + } + if (app->timeout_prompt()) { + tts_msg_params[strings::timeout_prompt] = (*app->timeout_prompt()); + } + tts_msg_params[strings::app_id] = app->app_id(); + + (*tts_global_properties)[strings::msg_params] = tts_msg_params; + + requests.push_back(tts_global_properties); + } + return requests; +} + +smart_objects::SmartObject* MessageHelper::CreateAppVrHelp(ApplicationConstSharedPtr app) { + smart_objects::SmartObject* result = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + if (!result) { + return NULL; + } + smart_objects::SmartObject& vr_help = *result; + if (app->vr_help_title()) { + vr_help[strings::vr_help_title] = (*app->vr_help_title()); + } else { + vr_help[strings::vr_help_title] = app->name(); + } + + if (app->vr_help()) { + vr_help[strings::vr_help] = (*app->vr_help()); + } else { + const std::set<ApplicationSharedPtr>& apps = ApplicationManagerImpl::instance() + ->applications(); + + int32_t index = 0; + std::set<ApplicationSharedPtr>::const_iterator it_app = apps.begin(); + for (; apps.end() != it_app; ++it_app) { + if ((*it_app)->vr_synonyms()) { + smart_objects::SmartObject item(smart_objects::SmartType_Map); + item[strings::text] = (*((*it_app)->vr_synonyms())).getElement(0); + item[strings::position] = index + 1; + vr_help[strings::vr_help][index++] = item; + } + } + + // copy all app VR commands + const CommandsMap& commands = app->commands_map(); + CommandsMap::const_iterator it = commands.begin(); + + for (; commands.end() != it; ++it) { + smart_objects::SmartObject item(smart_objects::SmartType_Map); + item[strings::text] = + (*it->second)[strings::vr_commands][0].asString(); + item[strings::position] = index + 1; + vr_help[strings::vr_help][index++] = item; + } + } + return result; +} + +void MessageHelper::SendShowRequestToHMI(ApplicationConstSharedPtr app) { + if (!app) { + return; + } + + smart_objects::SmartObject* ui_show = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + + if (!ui_show) { + return; + } + + if (app->show_command()) { + (*ui_show)[strings::params][strings::function_id] = + static_cast<int>(hmi_apis::FunctionID::UI_Show); + (*ui_show)[strings::params][strings::message_type] = + static_cast<int>(hmi_apis::messageType::request); + (*ui_show)[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + (*ui_show)[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + (*ui_show)[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + (*ui_show)[strings::msg_params] = (*app->show_command()); + DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(ui_show)); + } +} + +void MessageHelper::SendShowConstantTBTRequestToHMI(ApplicationConstSharedPtr app) { + if (!app) { + return; + } + + smart_objects::SmartObject* navi_show_tbt = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + + if (!navi_show_tbt) { + return; + } + + if (app->tbt_show_command()) { + (*navi_show_tbt)[strings::params][strings::function_id] = + static_cast<int>(hmi_apis::FunctionID::Navigation_ShowConstantTBT); + (*navi_show_tbt)[strings::params][strings::message_type] = + static_cast<int>(hmi_apis::messageType::request); + (*navi_show_tbt)[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + (*navi_show_tbt)[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + (*navi_show_tbt)[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + (*navi_show_tbt)[strings::msg_params] = (*app->tbt_show_command()); + DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(navi_show_tbt)); + } +} + +void MessageHelper::SendAddCommandRequestToHMI(ApplicationConstSharedPtr app) { + if (!app) { + return; + } + SmartObjectList requests = CreateAddCommandRequestToHMI(app); + for (SmartObjectList::iterator it = requests.begin(); + it != requests.end(); ++it) { + DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(*it)); + } +} + +MessageHelper::SmartObjectList MessageHelper::CreateAddCommandRequestToHMI(ApplicationConstSharedPtr app) { + DCHECK(app.get()); + + SmartObjectList requests; + const CommandsMap& commands = app->commands_map(); + CommandsMap::const_iterator i = commands.begin(); + for (; commands.end() != i; ++i) { + // UI Interface + if ((*i->second).keyExists(strings::menu_params)) { + smart_objects::SmartObject* ui_command = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + + if (!ui_command) { + return requests; + } + + (*ui_command)[strings::params][strings::function_id] = + static_cast<int>(hmi_apis::FunctionID::UI_AddCommand); + (*ui_command)[strings::params][strings::message_type] = + static_cast<int>(hmi_apis::messageType::request); + (*ui_command)[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + (*ui_command)[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + (*ui_command)[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::cmd_id] = i->first; + msg_params[strings::menu_params] = (*i->second)[strings::menu_params]; + msg_params[strings::app_id] = app->app_id(); + + if (((*i->second)[strings::cmd_icon].keyExists(strings::value)) + && (0 < (*i->second)[strings::cmd_icon][strings::value].length())) { + msg_params[strings::cmd_icon] = (*i->second)[strings::cmd_icon]; + msg_params[strings::cmd_icon][strings::value] = + (*i->second)[strings::cmd_icon][strings::value].asString(); + } + (*ui_command)[strings::msg_params] = msg_params; + requests.push_back(ui_command); + } + + // VR Interface + if ((*i->second).keyExists(strings::vr_commands)) { + SendAddVRCommandToHMI(i->first, (*i->second)[strings::vr_commands], + app->app_id()); + } + } + return requests; +} + +smart_objects::SmartObject* MessageHelper::CreateChangeRegistration( + int32_t function_id, int32_t language, uint32_t app_id) { + smart_objects::SmartObject* command = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + if (!command) { + return NULL; + } + smart_objects::SmartObject& params = *command; + + params[strings::params][strings::message_type] = + static_cast<int>(hmi_apis::messageType::request); + params[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + params[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + + params[strings::params][strings::function_id] = function_id; + + params[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::language] = language; + msg_params[strings::app_id] = app_id; + + params[strings::msg_params] = msg_params; + return command; +} + +void MessageHelper::SendChangeRegistrationRequestToHMI(ApplicationConstSharedPtr app) { + hmi_apis::Common_Language::eType app_common_language = + ToCommonLanguage(app->language()); + const HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + if (mobile_apis::Language::INVALID_ENUM != app->language()) { + smart_objects::SmartObject* vr_command = CreateChangeRegistration( + hmi_apis::FunctionID::VR_ChangeRegistration, app->language(), + app->app_id()); + + if (vr_command) { + ApplicationManagerImpl::instance()->ManageHMICommand(vr_command); + } + } + + if (mobile_apis::Language::INVALID_ENUM != app->language()) { + smart_objects::SmartObject* tts_command = CreateChangeRegistration( + hmi_apis::FunctionID::TTS_ChangeRegistration, app->language(), + app->app_id()); + + if (tts_command) { + ApplicationManagerImpl::instance()->ManageHMICommand(tts_command); + } + } + + if (mobile_apis::Language::INVALID_ENUM != app->ui_language()) { + smart_objects::SmartObject* ui_command = CreateChangeRegistration( + hmi_apis::FunctionID::UI_ChangeRegistration, app->ui_language(), + app->app_id()); + + if (ui_command) { + ApplicationManagerImpl::instance()->ManageHMICommand(ui_command); + } + + } +} + +void MessageHelper::SendAddVRCommandToHMI( + uint32_t cmd_id, const smart_objects::SmartObject& vr_commands, + uint32_t app_id) { + smart_objects::SmartObject* request = CreateAddVRCommandToHMI(cmd_id, vr_commands, app_id); + DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(request)); +} + +smart_objects::SmartObject* MessageHelper::CreateAddVRCommandToHMI(uint32_t cmd_id, const NsSmartDeviceLink::NsSmartObjects::SmartObject &vr_commands, uint32_t app_id) { + smart_objects::SmartObject* vr_command = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + + if (!vr_command) { + return NULL; + } + + (*vr_command)[strings::params][strings::function_id] = + hmi_apis::FunctionID::VR_AddCommand; + (*vr_command)[strings::params][strings::message_type] = + hmi_apis::messageType::request; + (*vr_command)[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + (*vr_command)[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + (*vr_command)[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + if (0 != cmd_id) { + msg_params[strings::cmd_id] = cmd_id; + } + msg_params[strings::vr_commands] = vr_commands; + if (0 < app_id) { + msg_params[strings::app_id] = app_id; + } + (*vr_command)[strings::msg_params] = msg_params; + + return vr_command; +} + +void MessageHelper::SendAddSubMenuRequestToHMI(ApplicationConstSharedPtr app) { + DCHECK(app.get()); + SmartObjectList requests = CreateAddSubMenuRequestToHMI(app); + for (SmartObjectList::iterator it = requests.begin(); + it != requests.end(); ++it) { + DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(*it)); + } +} + +MessageHelper::SmartObjectList MessageHelper::CreateAddSubMenuRequestToHMI(ApplicationConstSharedPtr app) { + SmartObjectList requsets; + const SubMenuMap& sub_menu = app->sub_menu_map(); + SubMenuMap::const_iterator i = sub_menu.begin(); + for (; sub_menu.end() != i; ++i) { + smart_objects::SmartObject* ui_sub_menu = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + + if (!ui_sub_menu) { + return requsets; + } + + (*ui_sub_menu)[strings::params][strings::function_id] = + hmi_apis::FunctionID::UI_AddSubMenu; + (*ui_sub_menu)[strings::params][strings::message_type] = + hmi_apis::messageType::request; + (*ui_sub_menu)[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + (*ui_sub_menu)[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + (*ui_sub_menu)[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + msg_params[strings::menu_id] = i->first; + msg_params[strings::menu_params][strings::position] = + (*i->second)[strings::position]; + msg_params[strings::menu_params][strings::menu_name] = + (*i->second)[strings::menu_name]; + msg_params[strings::app_id] = app->app_id(); + (*ui_sub_menu)[strings::msg_params] = msg_params; + requsets.push_back(ui_sub_menu); + } + return requsets; +} + +void MessageHelper::RemoveAppDataFromHMI(ApplicationSharedPtr app) { + SendDeleteCommandRequestToHMI(app); + SendDeleteSubMenuRequestToHMI(app); + SendRemoveVrCommandsOnUnregisterApp(app); + ResetGlobalproperties(app); +} + +void MessageHelper::SendOnSdlCloseNotificationToHMI() { + smart_objects::SmartObject* notification = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + if (!notification) { + return; + } + smart_objects::SmartObject& message = *notification; + message[strings::params][strings::function_id] = + hmi_apis::FunctionID::BasicCommunication_OnSDLClose; + message[strings::params][strings::message_type] = MessageType::kNotification; + + ApplicationManagerImpl::instance()->ManageHMICommand(&message); +} + +void MessageHelper::SendOnAppUnregNotificationToHMI(ApplicationConstSharedPtr app) { + smart_objects::SmartObject* notification = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + if (!notification) { + return; + } + + smart_objects::SmartObject& message = *notification; + + message[strings::params][strings::function_id] = + hmi_apis::FunctionID::BasicCommunication_OnAppUnregistered; + + message[strings::params][strings::message_type] = MessageType::kNotification; + message[strings::msg_params][strings::app_id] = app->app_id(); + + ApplicationManagerImpl::instance()->ManageHMICommand(&message); +} + +void MessageHelper::SendDeleteCommandRequestToHMI(ApplicationConstSharedPtr app) { + if (!app) { + return; + } + + const CommandsMap& commands = app->commands_map(); + CommandsMap::const_iterator i = commands.begin(); + for (; commands.end() != i; ++i) { + if ((*i->second).keyExists(strings::menu_params)) { + SendRemoveCommandToHMI( + static_cast<int32_t>(hmi_apis::FunctionID::UI_DeleteCommand), + i->first, app->app_id()); + } + + if ((*i->second).keyExists(strings::vr_commands)) { + SendRemoveCommandToHMI( + static_cast<int32_t>(hmi_apis::FunctionID::VR_DeleteCommand), + i->first, app->app_id()); + } + } +} + +void MessageHelper::SendRemoveCommandToHMI(int32_t function_id, int32_t command_id, + uint32_t app_id) { + smart_objects::SmartObject* delete_cmd = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + + if (!delete_cmd) { + return; + } + + (*delete_cmd)[strings::params][strings::function_id] = function_id; + (*delete_cmd)[strings::params][strings::message_type] = + hmi_apis::messageType::request; + (*delete_cmd)[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + (*delete_cmd)[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + (*delete_cmd)[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + msg_params[strings::cmd_id] = command_id; + msg_params[strings::app_id] = app_id; + (*delete_cmd)[strings::msg_params] = msg_params; + ApplicationManagerImpl::instance()->ManageHMICommand(delete_cmd); +} + +void MessageHelper::SendDeleteSubMenuRequestToHMI(ApplicationConstSharedPtr app) { + if (!app) { + return; + } + + const SubMenuMap& sub_menu = app->sub_menu_map(); + SubMenuMap::const_iterator i = sub_menu.begin(); + for (; sub_menu.end() != i; ++i) { + smart_objects::SmartObject* delete_sub_menu = + new smart_objects::SmartObject(smart_objects::SmartType_Map); + + if (!delete_sub_menu) { + return; + } + + (*delete_sub_menu)[strings::params][strings::function_id] = + hmi_apis::FunctionID::UI_DeleteSubMenu; + (*delete_sub_menu)[strings::params][strings::message_type] = + hmi_apis::messageType::request; + (*delete_sub_menu)[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + (*delete_sub_menu)[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + (*delete_sub_menu)[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + + smart_objects::SmartObject msg_params = smart_objects::SmartObject( + smart_objects::SmartType_Map); + + msg_params[strings::menu_id] = i->first; + msg_params[strings::menu_params][strings::position] = + (*i->second)[strings::position]; + msg_params[strings::menu_params][strings::menu_name] = + (*i->second)[strings::menu_name]; + msg_params[strings::app_id] = app->app_id(); + (*delete_sub_menu)[strings::msg_params] = msg_params; + + ApplicationManagerImpl::instance()->ManageHMICommand(delete_sub_menu); + } +} + +void MessageHelper::SendActivateAppToHMI(uint32_t const app_id) { + smart_objects::SmartObject* message = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + if (!message) { + return; + } + + (*message)[strings::params][strings::function_id] = + hmi_apis::FunctionID::BasicCommunication_ActivateApp; + (*message)[strings::params][strings::message_type] = MessageType::kRequest; + (*message)[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + (*message)[strings::msg_params][strings::app_id] = app_id; + + ApplicationManagerImpl::instance()->ManageHMICommand(message); +} + +smart_objects::SmartObject* MessageHelper::CreateNegativeResponse( + uint32_t connection_key, int32_t function_id, uint32_t correlation_id, + int32_t result_code) { + smart_objects::SmartObject* response = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + smart_objects::SmartObject& response_data = *response; + response_data[strings::params][strings::function_id] = function_id; + response_data[strings::params][strings::message_type] = + mobile_apis::messageType::response; + response_data[strings::params][strings::correlation_id] = correlation_id; + response_data[strings::params][strings::protocol_type] = + commands::CommandImpl::mobile_protocol_type_; + response_data[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + response_data[strings::msg_params][strings::result_code] = result_code; + response_data[strings::msg_params][strings::success] = false; + response_data[strings::params][strings::connection_key] = connection_key; + + return response; +} + +void MessageHelper::ResetGlobalproperties(ApplicationSharedPtr app) { + // reset help_prompt + const std::vector<std::string>& help_prompt = profile::Profile::instance() + ->help_prompt(); + + smart_objects::SmartObject so_help_prompt = smart_objects::SmartObject( + smart_objects::SmartType_Array); + + for (uint32_t i = 0; i < help_prompt.size(); ++i) { + smart_objects::SmartObject helpPrompt = smart_objects::SmartObject( + smart_objects::SmartType_Map); + helpPrompt[strings::text] = help_prompt[i]; + so_help_prompt[i] = helpPrompt; + } + + app->set_help_prompt(so_help_prompt); + + // reset timeout prompt + const std::vector<std::string>& time_out_promt = profile::Profile::instance() + ->time_out_promt(); + + smart_objects::SmartObject so_time_out_promt = smart_objects::SmartObject( + smart_objects::SmartType_Array); + + for (uint32_t i = 0; i < time_out_promt.size(); ++i) { + smart_objects::SmartObject timeoutPrompt = smart_objects::SmartObject( + smart_objects::SmartType_Map); + timeoutPrompt[strings::text] = time_out_promt[i]; + so_time_out_promt[i] = timeoutPrompt; + } + + app->set_timeout_prompt(so_time_out_promt); + + // reset VR help title + smart_objects::SmartObject help_title(app->name()); + app->set_vr_help_title(help_title); + + // reset VR help items + const CommandsMap& cmdMap = app->commands_map(); + smart_objects::SmartObject vr_help_items; + + int32_t index = 0; + CommandsMap::const_iterator command_it = cmdMap.begin(); + + for (; cmdMap.end() != command_it; ++command_it) { + if (true == (*command_it->second).keyExists(strings::vr_commands)) { + // use only first + vr_help_items[index][strings::position] = (index + 1); + vr_help_items[index++][strings::text] = + (*command_it->second)[strings::vr_commands][0]; + } + } + + app->set_vr_help(vr_help_items); + + // send global properties + SendGlobalPropertiesToHMI(app); +} + +void MessageHelper::SendNaviStartStream( + const std::string& url, int32_t connection_key) { + LOG4CXX_INFO(g_logger, "MessageHelper::SendNaviStartStream"); + smart_objects::SmartObject* start_stream = + new smart_objects::SmartObject(smart_objects::SmartType_Map); + + if (!start_stream) { + return; + } + + (*start_stream)[strings::params][strings::function_id] = + hmi_apis::FunctionID::Navigation_StartStream; + (*start_stream)[strings::params][strings::message_type] = + hmi_apis::messageType::request; + (*start_stream)[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + (*start_stream)[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + (*start_stream)[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + + smart_objects::SmartObject msg_params = + smart_objects::SmartObject(smart_objects::SmartType_Map); + + uint32_t app_id = 0; + connection_handler::ConnectionHandlerImpl::instance()->GetDataOnSessionKey( + connection_key, + &app_id); + + msg_params[strings::app_id] = app_id; + msg_params[strings::url] = url; + + (*start_stream)[strings::msg_params] = msg_params; + + ApplicationManagerImpl::instance()->ManageHMICommand(start_stream); +} + +void MessageHelper::SendNaviStopStream(int32_t connection_key) { + smart_objects::SmartObject* stop_stream = + new smart_objects::SmartObject(smart_objects::SmartType_Map); + + if (!stop_stream) { + return; + } + + (*stop_stream)[strings::params][strings::function_id] = + hmi_apis::FunctionID::Navigation_StopStream; + (*stop_stream)[strings::params][strings::message_type] = + hmi_apis::messageType::request; + (*stop_stream)[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + (*stop_stream)[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + (*stop_stream)[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + + smart_objects::SmartObject msg_params = + smart_objects::SmartObject(smart_objects::SmartType_Map); + + uint32_t app_id = 0; + connection_handler::ConnectionHandlerImpl::instance()->GetDataOnSessionKey( + connection_key, + &app_id); + + msg_params[strings::app_id] = app_id; + + (*stop_stream)[strings::msg_params] = msg_params; + + ApplicationManagerImpl::instance()->ManageHMICommand(stop_stream); +} + +void MessageHelper::SendAudioStartStream( + const std::string& url, int32_t connection_key) { + + smart_objects::SmartObject* start_stream = + new smart_objects::SmartObject(smart_objects::SmartType_Map); + + if (!start_stream) { + return; + } + + (*start_stream)[strings::params][strings::function_id] = + hmi_apis::FunctionID::Navigation_StartAudioStream; + (*start_stream)[strings::params][strings::message_type] = + hmi_apis::messageType::request; + (*start_stream)[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + (*start_stream)[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + (*start_stream)[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + + smart_objects::SmartObject msg_params = + smart_objects::SmartObject(smart_objects::SmartType_Map); + + uint32_t app_id = 0; + connection_handler::ConnectionHandlerImpl::instance()->GetDataOnSessionKey( + connection_key, + &app_id); + + msg_params[strings::app_id] = app_id; + msg_params[strings::url] = url; + + (*start_stream)[strings::msg_params] = msg_params; + + DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(start_stream)); +} + +void MessageHelper::SendAudioStopStream(int32_t connection_key) { + smart_objects::SmartObject* stop_stream = + new smart_objects::SmartObject(smart_objects::SmartType_Map); + + if (!stop_stream) { + return; + } + + (*stop_stream)[strings::params][strings::function_id] = + hmi_apis::FunctionID::Navigation_StopAudioStream; + (*stop_stream)[strings::params][strings::message_type] = + hmi_apis::messageType::request; + (*stop_stream)[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + (*stop_stream)[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + (*stop_stream)[strings::params][strings::correlation_id] = + ApplicationManagerImpl::instance()->GetNextHMICorrelationID(); + + smart_objects::SmartObject msg_params = + smart_objects::SmartObject(smart_objects::SmartType_Map); + + uint32_t app_id = 0; + connection_handler::ConnectionHandlerImpl::instance()->GetDataOnSessionKey( + connection_key, + &app_id); + + msg_params[strings::app_id] = app_id; + + (*stop_stream)[strings::msg_params] = msg_params; + + ApplicationManagerImpl::instance()->ManageHMICommand(stop_stream); +} + +bool MessageHelper::SendStopAudioPathThru() { + LOG4CXX_INFO(g_logger,"MessageHelper::SendAudioStopAudioPathThru"); + + NsSmartDeviceLink::NsSmartObjects::SmartObject* result = + new NsSmartDeviceLink::NsSmartObjects::SmartObject; + const uint32_t hmi_correlation_id = ApplicationManagerImpl::instance()-> + GetNextHMICorrelationID(); + NsSmartDeviceLink::NsSmartObjects::SmartObject& request = *result; + request[strings::params][strings::message_type] = MessageType::kRequest; + request[strings::params][strings::function_id] = hmi_apis::FunctionID::UI_EndAudioPassThru; + request[strings::params][strings::correlation_id] = hmi_correlation_id; + request[strings::params][strings::protocol_version] = + commands::CommandImpl::protocol_version_; + request[strings::params][strings::protocol_type] = + commands::CommandImpl::hmi_protocol_type_; + return ApplicationManagerImpl::instance()->ManageHMICommand(result); +} + +mobile_apis::Result::eType MessageHelper::VerifyImageFiles( + smart_objects::SmartObject& message, ApplicationConstSharedPtr app) { + if (NsSmartDeviceLink::NsSmartObjects::SmartType_Array == message.getType()) { + for (int32_t i = 0; i < message.length(); ++i) { + mobile_apis::Result::eType res = VerifyImageFiles(message[i], app); + if (mobile_apis::Result::SUCCESS != res) { + return res; + } + } + } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Map + == message.getType()) { + if (message.keyExists(strings::image_type)) { + mobile_apis::Result::eType verification_result = + VerifyImage(message, app); + + if (mobile_apis::Result::SUCCESS != verification_result) { + return verification_result; // exit point + } + } else { + std::set < std::string > keys = message.enumerate(); + + for (std::set<std::string>::const_iterator key = keys.begin(); + key != keys.end(); ++key) { + if (strings::soft_buttons != (*key)) { + mobile_apis::Result::eType res = VerifyImageFiles(message[*key], app); + if (mobile_apis::Result::SUCCESS != res) { + return res; + } + } + } + } + } // all other types shoudn't be processed + + return mobile_apis::Result::SUCCESS; +} + +mobile_apis::Result::eType MessageHelper::VerifyImage( + smart_objects::SmartObject& image, ApplicationConstSharedPtr app) { + const std::string& file_name = image[strings::value].asString(); + + std::string str = file_name; + str.erase(remove(str.begin(), str.end(), ' '), str.end()); + if (0 == str.size()) { + return mobile_apis::Result::INVALID_DATA; + } + + std::string relative_file_path = app->name(); + relative_file_path += "/"; + relative_file_path += file_name; + + std::string full_file_path = file_system::FullPath(relative_file_path); + + if (!file_system::FileExists(full_file_path)) { + return mobile_apis::Result::INVALID_DATA; + } + + const HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + if (!hmi_capabilities.VerifyImageType( + static_cast<mobile_apis::ImageType::eType>(image[strings::image_type] + .asInt()))) { + return mobile_apis::Result::UNSUPPORTED_RESOURCE; + } + + image[strings::value] = full_file_path; + + return mobile_apis::Result::SUCCESS; +} + +bool MessageHelper::VerifySoftButtonText +(smart_objects::SmartObject& soft_button) { + std::string text = soft_button[strings::text].asString(); + text.erase(remove(text.begin(), text.end(), ' '), text.end()); + text.erase(remove(text.begin(), text.end(), '\n'), text.end()); + if (text.size()) { + return true; + } else { + soft_button.erase(strings::text); + } + + return false; +} + +mobile_apis::Result::eType MessageHelper::ProcessSoftButtons( + smart_objects::SmartObject& message_params, ApplicationConstSharedPtr app) { + if (!message_params.keyExists(strings::soft_buttons)) { + return mobile_apis::Result::SUCCESS; + } + + const HMICapabilities& hmi_capabilities = + ApplicationManagerImpl::instance()->hmi_capabilities(); + const smart_objects::SmartObject* soft_button_capabilities = + hmi_capabilities.soft_button_capabilities(); + bool image_supported = false; + if (soft_button_capabilities) { + image_supported = + (*soft_button_capabilities)[hmi_response::image_supported].asBool(); + } + + smart_objects::SmartObject& request_soft_buttons = + message_params[strings::soft_buttons]; + + // Check whether soft buttons request is well-formed + if (!ValidateSoftButtons(request_soft_buttons)) + return mobile_apis::Result::INVALID_DATA; + + smart_objects::SmartObject soft_buttons = smart_objects::SmartObject( + smart_objects::SmartType_Array); + bool flag_unsuported_resource = false; + + int32_t j = 0; + for (int32_t i = 0; i < request_soft_buttons.length(); ++i) { + switch (request_soft_buttons[i][strings::type].asInt()) { + case mobile_apis::SoftButtonType::SBT_IMAGE: { + if (!image_supported) { + continue; + } + + if (request_soft_buttons[i].keyExists(strings::image)) { + mobile_apis::Result::eType verification_result = VerifyImage( + request_soft_buttons[i][strings::image], app); + + if (mobile_apis::Result::SUCCESS != verification_result) { + if (mobile_apis::Result::UNSUPPORTED_RESOURCE == + verification_result) { + request_soft_buttons[i].erase(strings::image); + flag_unsuported_resource = true; + } else { + return mobile_apis::Result::INVALID_DATA; + } + } + } else { + return mobile_apis::Result::INVALID_DATA; + } + break; + } + case mobile_apis::SoftButtonType::SBT_TEXT: { + if (!request_soft_buttons[i].keyExists(strings::text)) { + return mobile_apis::Result::INVALID_DATA; + } + + if (!VerifySoftButtonText(request_soft_buttons[i])) { + continue; + } + break; + } + case mobile_apis::SoftButtonType::SBT_BOTH: { + + if (request_soft_buttons[i].keyExists(strings::text)) { + VerifySoftButtonText(request_soft_buttons[i]); + } else { + return mobile_apis::Result::INVALID_DATA; + } + + bool image_exist = false; + if (image_supported) { + image_exist = request_soft_buttons[i].keyExists(strings::image); + if (!image_exist) { + return mobile_apis::Result::INVALID_DATA; + } + } + if (image_exist) { + mobile_apis::Result::eType verification_result = VerifyImage( + request_soft_buttons[i][strings::image], app); + + if (mobile_apis::Result::SUCCESS != verification_result) { + if (mobile_apis::Result::UNSUPPORTED_RESOURCE == + verification_result) { + request_soft_buttons[i].erase(strings::image); + flag_unsuported_resource = true; + } else { + return mobile_apis::Result::INVALID_DATA; + } + } + } + break; + } + default: { + continue; + break; + } + } + + soft_buttons[j] = request_soft_buttons[i]; + + if (!soft_buttons[j].keyExists(strings::system_action)) { + soft_buttons[j][strings::system_action] = + mobile_apis::SystemAction::DEFAULT_ACTION; + } + + ++j; + } + + request_soft_buttons = soft_buttons; + + if (0 == request_soft_buttons.length()) { + message_params.erase(strings::soft_buttons); + } + if (flag_unsuported_resource) { + return mobile_apis::Result::UNSUPPORTED_RESOURCE; + } else { + return mobile_apis::Result::SUCCESS; + } +} + +// TODO(AK): change printf to logger +bool MessageHelper::PrintSmartObject(const smart_objects::SmartObject& object) { + static uint32_t tab = 0; + std::string tab_buffer; + + if (tab == 0) { + printf("\n-------------------------------------------------------------"); + } + + for (uint32_t i = 0; i < tab; ++i) { + tab_buffer += "\t"; + } + + switch (object.getType()) { + case NsSmartDeviceLink::NsSmartObjects::SmartType_Array: { + for (size_t i = 0; i < object.length(); i++) { + ++tab; + + printf("\n%s%d: ", tab_buffer.c_str(), i); + if (!PrintSmartObject(object.getElement(i))) { + printf("\n"); + return false; + } + } + break; + } + case NsSmartDeviceLink::NsSmartObjects::SmartType_Map: { + std::set < std::string > keys = object.enumerate(); + + for (std::set<std::string>::const_iterator key = keys.begin(); + key != keys.end(); key++) { + ++tab; + + printf("\n%s%s: ", tab_buffer.c_str(), (*key).c_str()); + if (!PrintSmartObject(object[(*key).c_str()])) { + printf("\n"); + return false; + } + } + break; + } + case NsSmartDeviceLink::NsSmartObjects::SmartType_Boolean: + object.asBool() ? printf("true\n") : printf("false\n"); + break; + case NsSmartDeviceLink::NsSmartObjects::SmartType_Double: { + printf("%f", object.asDouble()); + break; + } + case NsSmartDeviceLink::NsSmartObjects::SmartType_Integer: + printf("%d", object.asInt()); + break; + case NsSmartDeviceLink::NsSmartObjects::SmartType_String: + printf("%s", object.asString().c_str()); + break; + case NsSmartDeviceLink::NsSmartObjects::SmartType_Character: + printf("%c", object.asChar()); + break; + default: + printf("PrintSmartObject - default case\n"); + break; + } + + if (0 != tab) { + --tab; + } else { + printf("\n-------------------------------------------------------------\n"); + } + + return true; +} + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/mobile_command_factory.cc b/SDL_Core/src/components/application_manager/src/mobile_command_factory.cc new file mode 100644 index 000000000..9b868f8c4 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/mobile_command_factory.cc @@ -0,0 +1,570 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/mobile_command_factory.h" +#include "application_manager/commands/mobile/add_command_request.h" +#include "application_manager/commands/mobile/add_command_response.h" +#include "application_manager/commands/mobile/delete_command_request.h" +#include "application_manager/commands/mobile/delete_command_response.h" +#include "application_manager/commands/mobile/add_sub_menu_request.h" +#include "application_manager/commands/mobile/add_sub_menu_response.h" +#include "application_manager/commands/mobile/alert_request.h" +#include "application_manager/commands/mobile/alert_response.h" +#include "application_manager/commands/mobile/alert_maneuver_request.h" +#include "application_manager/commands/mobile/alert_maneuver_response.h" +#include "application_manager/commands/mobile/change_registration_request.h" +#include "application_manager/commands/mobile/change_registration_response.h" +#include "application_manager/commands/mobile/create_interaction_choice_set_request.h" +#include "application_manager/commands/mobile/create_interaction_choice_set_response.h" +#include "application_manager/commands/mobile/delete_file_request.h" +#include "application_manager/commands/mobile/delete_file_response.h" +#include "application_manager/commands/mobile/delete_interaction_choice_set_request.h" +#include "application_manager/commands/mobile/delete_interaction_choice_set_response.h" +#include "application_manager/commands/mobile/delete_sub_menu_request.h" +#include "application_manager/commands/mobile/delete_sub_menu_response.h" +#include "application_manager/commands/mobile/dial_number_request.h" +#include "application_manager/commands/mobile/encoded_sync_pdata_request.h" +#include "application_manager/commands/mobile/encoded_sync_pdata_response.h" +#include "application_manager/commands/mobile/end_audio_pass_thru_request.h" +#include "application_manager/commands/mobile/end_audio_pass_thru_response.h" +#include "application_manager/commands/mobile/generic_response.h" +#include "application_manager/commands/mobile/get_dtcs_request.h" +#include "application_manager/commands/mobile/get_dtcs_response.h" +#include "application_manager/commands/mobile/get_vehicle_data_request.h" +#include "application_manager/commands/mobile/get_vehicle_data_response.h" +#include "application_manager/commands/mobile/list_files_request.h" +#include "application_manager/commands/mobile/list_files_response.h" +#include "application_manager/commands/mobile/on_app_interface_unregistered_notification.h" +#include "application_manager/commands/mobile/on_audio_pass_thru_notification.h" +#include "application_manager/commands/mobile/on_button_event_notification.h" +#include "application_manager/commands/mobile/on_button_press_notification.h" +#include "application_manager/commands/mobile/on_driver_distraction_notification.h" +#include "application_manager/commands/mobile/on_encoded_sync_pdata_notification.h" +#include "application_manager/commands/mobile/on_hmi_status_notification.h" +#include "application_manager/commands/mobile/on_language_change_notification.h" +#include "application_manager/commands/mobile/on_command_notification.h" +#include "application_manager/commands/mobile/on_permissions_change_notification.h" +#include "application_manager/commands/mobile/on_tbt_client_state_notification.h" +#include "application_manager/commands/mobile/on_vehicle_data_notification.h" +#include "application_manager/commands/mobile/on_hash_change_notification.h" +#include "application_manager/commands/mobile/perform_audio_pass_thru_request.h" +#include "application_manager/commands/mobile/perform_audio_pass_thru_response.h" +#include "application_manager/commands/mobile/perform_interaction_request.h" +#include "application_manager/commands/mobile/perform_interaction_response.h" +#include "application_manager/commands/mobile/put_file_request.h" +#include "application_manager/commands/mobile/put_file_response.h" +#include "application_manager/commands/mobile/read_did_request.h" +#include "application_manager/commands/mobile/read_did_response.h" +#include "application_manager/commands/mobile/register_app_interface_request.h" +#include "application_manager/commands/mobile/register_app_interface_response.h" +#include "application_manager/commands/mobile/reset_global_properties_request.h" +#include "application_manager/commands/mobile/reset_global_properties_response.h" +#include "application_manager/commands/mobile/scrollable_message_request.h" +#include "application_manager/commands/mobile/scrollable_message_response.h" +#include "application_manager/commands/mobile/set_display_layout_request.h" +#include "application_manager/commands/mobile/set_display_layout_response.h" +#include "application_manager/commands/mobile/set_global_properties_request.h" +#include "application_manager/commands/mobile/set_global_properties_response.h" +#include "application_manager/commands/mobile/set_icon_request.h" +#include "application_manager/commands/mobile/set_icon_response.h" +#include "application_manager/commands/mobile/set_media_clock_timer_request.h" +#include "application_manager/commands/mobile/set_media_clock_timer_response.h" +#include "application_manager/commands/mobile/show_constant_tbt_request.h" +#include "application_manager/commands/mobile/show_constant_tbt_response.h" +#include "application_manager/commands/mobile/show_request.h" +#include "application_manager/commands/mobile/show_response.h" +#include "application_manager/commands/mobile/slider_request.h" +#include "application_manager/commands/mobile/slider_response.h" +#include "application_manager/commands/mobile/speak_request.h" +#include "application_manager/commands/mobile/speak_response.h" +#include "application_manager/commands/mobile/subscribe_button_request.h" +#include "application_manager/commands/mobile/subscribe_button_response.h" +#include "application_manager/commands/mobile/subscribe_vehicle_data_request.h" +#include "application_manager/commands/mobile/subscribe_vehicle_data_response.h" +#include "application_manager/commands/mobile/unregister_app_interface_request.h" +#include "application_manager/commands/mobile/unregister_app_interface_response.h" +#include "application_manager/commands/mobile/unsubscribe_button_request.h" +#include "application_manager/commands/mobile/unsubscribe_button_response.h" +#include "application_manager/commands/mobile/unsubscribe_vehicle_data_request.h" +#include "application_manager/commands/mobile/unsubscribe_vehicle_data_response.h" +#include "application_manager/commands/mobile/update_turn_list_request.h" +#include "application_manager/commands/mobile/update_turn_list_response.h" +#include "application_manager/commands/mobile/sync_pdata_request.h" +#include "application_manager/commands/mobile/sync_pdata_response.h" +#include "application_manager/commands/mobile/system_request.h" +#include "application_manager/commands/mobile/system_response.h" +#include "application_manager/commands/mobile/on_sync_pdata_notification.h" +#include "application_manager/commands/mobile/on_keyboard_input_notification.h" +#include "application_manager/commands/mobile/on_touch_event_notification.h" +#include "application_manager/commands/mobile/on_system_request_notification.h" +#include "application_manager/commands/mobile/diagnostic_message_request.h" +#include "application_manager/commands/mobile/diagnostic_message_response.h" +#include "interfaces/MOBILE_API.h" + +namespace application_manager { + +CommandSharedPtr MobileCommandFactory::CreateCommand( + const MessageSharedPtr& message) { + CommandSharedPtr command; + + switch ((*message)[strings::params][strings::function_id].asInt()) { + case mobile_apis::FunctionID::RegisterAppInterfaceID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kRequest)) { + command.reset(new commands::RegisterAppInterfaceRequest(message)); + } else { + command.reset(new commands::RegisterAppInterfaceResponse(message)); + } + break; + } + case mobile_apis::FunctionID::UnregisterAppInterfaceID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kRequest)) { + command.reset(new commands::UnregisterAppInterfaceRequest(message)); + } else { + command.reset(new commands::UnregisterAppInterfaceResponse(message)); + } + break; + } + case mobile_apis::FunctionID::SetGlobalPropertiesID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::SetGlobalPropertiesResponse(message)); + } else { + command.reset(new commands::SetGlobalPropertiesRequest(message)); + } + break; + } + case mobile_apis::FunctionID::ResetGlobalPropertiesID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::ResetGlobalPropertiesResponse(message)); + } else { + command.reset(new commands::ResetGlobalPropertiesRequest(message)); + } + break; + } + case mobile_apis::FunctionID::AddCommandID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::AddCommandResponse(message)); + } else { + command.reset(new commands::AddCommandRequest(message)); + } + break; + } + case mobile_apis::FunctionID::DeleteCommandID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::DeleteCommandResponse(message)); + } else { + command.reset(new commands::DeleteCommandRequest(message)); + } + break; + } + case mobile_apis::FunctionID::AddSubMenuID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::AddSubMenuResponse(message)); + } else { + command.reset(new commands::AddSubMenuRequest(message)); + } + break; + } + case mobile_apis::FunctionID::DeleteSubMenuID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::DeleteSubMenuResponse(message)); + } else { + command.reset(new commands::DeleteSubMenuRequest(message)); + } + break; + } + case mobile_apis::FunctionID::DeleteInteractionChoiceSetID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset( + new commands::DeleteInteractionChoiceSetResponse(message)); + } else { + command.reset(new commands::DeleteInteractionChoiceSetRequest(message)); + } + break; + } + case mobile_apis::FunctionID::AlertID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::AlertResponse(message)); + } else { + command.reset(new commands::AlertRequest(message)); + } + break; + } + case mobile_apis::FunctionID::SpeakID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::SpeakResponse(message)); + } else { + command.reset(new commands::SpeakRequest(message)); + } + break; + } + case mobile_apis::FunctionID::SliderID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::SliderResponse(message)); + } else { + command.reset(new commands::SliderRequest(message)); + } + break; + } + case mobile_apis::FunctionID::PerformAudioPassThruID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::PerformAudioPassThruResponse(message)); + } else { + command.reset(new commands::PerformAudioPassThruRequest(message)); + } + break; + } + case mobile_apis::FunctionID::CreateInteractionChoiceSetID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset( + new commands::CreateInteractionChoiceSetResponse(message)); + } else { + command.reset(new commands::CreateInteractionChoiceSetRequest(message)); + } + break; + } + case mobile_apis::FunctionID::PerformInteractionID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::PerformInteractionResponse(message)); + } else { + command.reset(new commands::PerformInteractionRequest(message)); + } + break; + } + case mobile_apis::FunctionID::EndAudioPassThruID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::EndAudioPassThruResponse(message)); + } else { + command.reset(new commands::EndAudioPassThruRequest(message)); + } + break; + } + case mobile_apis::FunctionID::PutFileID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::PutFileResponse(message)); + } else { + command.reset(new commands::PutFileRequest(message)); + } + break; + } + case mobile_apis::FunctionID::DeleteFileID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::DeleteFileResponse(message)); + } else { + command.reset(new commands::DeleteFileRequest(message)); + } + break; + } + case mobile_apis::FunctionID::ListFilesID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::ListFilesResponse(message)); + } else { + command.reset(new commands::ListFilesRequest(message)); + } + break; + } + case mobile_apis::FunctionID::SubscribeButtonID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::SubscribeButtonResponse(message)); + } else { + command.reset(new commands::SubscribeButtonRequest(message)); + } + break; + } + case mobile_apis::FunctionID::UnsubscribeButtonID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::UnsubscribeButtonResponse(message)); + } else { + command.reset(new commands::UnsubscribeButtonRequest(message)); + } + break; + } + case mobile_apis::FunctionID::ShowConstantTBTID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::ShowConstantTBTResponse(message)); + } else { + command.reset(new commands::ShowConstantTBTRequest(message)); + } + break; + } + case mobile_apis::FunctionID::ShowID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::ShowResponse(message)); + } else { + command.reset(new commands::ShowRequest(message)); + } + break; + } + case mobile_apis::FunctionID::SubscribeVehicleDataID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::SubscribeVehicleDataResponse(message)); + } else { + command.reset(new commands::SubscribeVehicleDataRequest(message)); + } + break; + } + case mobile_apis::FunctionID::SyncPDataID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::SyncPDataResponse(message)); + } else { + command.reset(new commands::SyncPDataRequest(message)); + } + break; + } + case mobile_apis::FunctionID::EncodedSyncPDataID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::EncodedSyncPDataResponse(message)); + } else { + command.reset(new commands::EncodedSyncPDataRequest(message)); + } + break; + } + case mobile_apis::FunctionID::UnsubscribeVehicleDataID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::UnsubscribeVehicleDataResponse(message)); + } else { + command.reset(new commands::UnsubscribeVehicleDataRequest(message)); + } + break; + } + case mobile_apis::FunctionID::ReadDIDID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::ReadDIDResponse(message)); + } else { + command.reset(new commands::ReadDIDRequest(message)); + } + break; + } + case mobile_apis::FunctionID::GetVehicleDataID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::GetVehicleDataResponse(message)); + } else { + command.reset(new commands::GetVehicleDataRequest(message)); + } + break; + } + case mobile_apis::FunctionID::ScrollableMessageID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::ScrollableMessageResponse(message)); + } else { + command.reset(new commands::ScrollabelMessageRequest(message)); + } + break; + } + case mobile_apis::FunctionID::AlertManeuverID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::AlertManeuverResponse(message)); + } else { + command.reset(new commands::AlertManeuverRequest(message)); + } + break; + } + case mobile_apis::FunctionID::SetAppIconID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::SetIconResponse(message)); + } else { + command.reset(new commands::SetIconRequest(message)); + } + break; + } + case mobile_apis::FunctionID::SetDisplayLayoutID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::SetDisplayLayoutResponse(message)); + } else { + command.reset(new commands::SetDisplayLayoutRequest(message)); + } + break; + } + case mobile_apis::FunctionID::UpdateTurnListID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::UpdateTurnListResponse(message)); + } else { + command.reset(new commands::UpdateTurnListRequest(message)); + } + break; + } + case mobile_apis::FunctionID::ChangeRegistrationID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::ChangeRegistrationResponse(message)); + } else { + command.reset(new commands::ChangeRegistrationRequest(message)); + } + break; + } + case mobile_apis::FunctionID::GetDTCsID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::GetDTCsResponse(message)); + } else { + command.reset(new commands::GetDTCsRequest(message)); + } + break; + } + case mobile_apis::FunctionID::DiagnosticMessageID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::DiagnosticMessageResponse(message)); + } else { + command.reset(new commands::DiagnosticMessageRequest(message)); + } + break; + } + case mobile_apis::FunctionID::SetMediaClockTimerID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::SetMediaClockTimerResponse(message)); + } else { + command.reset(new commands::SetMediaClockRequest(message)); + } + break; + } + case mobile_apis::FunctionID::SystemRequestID: { + if ((*message)[strings::params][strings::message_type] + == static_cast<int>(application_manager::MessageType::kResponse)) { + command.reset(new commands::SystemResponse(message)); + } else { + command.reset(new commands::SystemRequest(message)); + } + break; + } + case mobile_apis::FunctionID::OnButtonEventID: { + command.reset(new commands::mobile::OnButtonEventNotification(message)); + break; + } + case mobile_apis::FunctionID::OnButtonPressID: { + command.reset(new commands::mobile::OnButtonPressNotification(message)); + break; + } + case mobile_apis::FunctionID::OnAudioPassThruID: { + command.reset(new commands::OnAudioPassThruNotification(message)); + break; + } + case mobile_apis::FunctionID::OnVehicleDataID: { + command.reset(new commands::OnVehicleDataNotification(message)); + break; + } + case mobile_apis::FunctionID::OnAppInterfaceUnregisteredID: { + command.reset( + new commands::OnAppInterfaceUnregisteredNotification(message)); + break; + } + case mobile_apis::FunctionID::OnCommandID: { + command.reset(new commands::OnCommandNotification(message)); + break; + } + case mobile_apis::FunctionID::OnTBTClientStateID: { + command.reset(new commands::OnTBTClientStateNotification(message)); + break; + } + case mobile_apis::FunctionID::OnDriverDistractionID: { + command.reset( + new commands::mobile::OnDriverDistractionNotification(message)); + break; + } + case mobile_apis::FunctionID::OnLanguageChangeID: { + command.reset(new commands::OnLanguageChangeNotification(message)); + break; + } + case mobile_apis::FunctionID::OnPermissionsChangeID: { + command.reset(new commands::OnPermissionsChangeNotification(message)); + break; + } + case mobile_apis::FunctionID::OnHMIStatusID: { + command.reset(new commands::OnHMIStatusNotification(message)); + break; + } + case mobile_apis::FunctionID::OnSyncPDataID: { + command.reset(new commands::OnSyncPDataNotification(message)); + break; + } + case mobile_apis::FunctionID::OnKeyboardInputID: { + command.reset(new commands::mobile::OnKeyBoardInputNotification(message)); + break; + } + case mobile_apis::FunctionID::OnTouchEventID: { + command.reset(new commands::mobile::OnTouchEventNotification(message)); + break; + } + case mobile_apis::FunctionID::OnSystemRequestID: { + command.reset(new commands::mobile::OnSystemRequestNotification(message)); + break; + } + case mobile_apis::FunctionID::OnHashChangeID: { + command.reset(new commands::mobile::OnHashChangeNotification(message)); + break; + } + default: { + command.reset(new commands::GenericResponse(message)); + (*message)[strings::params][strings::function_id] = + static_cast<int32_t>(mobile_apis::FunctionID::GenericResponseID); + break; + } + } + + return command; +} + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/mobile_message_handler.cc b/SDL_Core/src/components/application_manager/src/mobile_message_handler.cc new file mode 100644 index 000000000..94c277288 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/mobile_message_handler.cc @@ -0,0 +1,218 @@ +/** + * Copyright (c) 2013, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include <string.h> + +#include "utils/macro.h" +#include "application_manager/mobile_message_handler.h" +#include "protocol_handler/service_type.h" +#include "protocol_handler/protocol_payload.h" +#include "utils/bitstream.h" + +#include <stdint.h> +#include <memory> + +namespace { +const uint8_t kRequest = 0x0; +const uint8_t kResponse = 0x1; +const uint8_t kNotification = 0x2; +const uint8_t kUnknown = 0xF; +} + +namespace application_manager { + +log4cxx::LoggerPtr MobileMessageHandler::logger_ = log4cxx::LoggerPtr( + log4cxx::Logger::getLogger("MobileMessageHandler")); + +application_manager::Message* +MobileMessageHandler::HandleIncomingMessageProtocolV1( + const protocol_handler::RawMessagePtr& message) { + LOG4CXX_INFO(logger_, + "MobileMessageHandler HandleIncomingMessageProtocolV1()"); + application_manager::Message* outgoing_message = + new application_manager::Message( + protocol_handler::MessagePriority::FromServiceType( + message->service_type()) + ); + if (!message) { + NOTREACHED(); + return NULL; + } + + outgoing_message->set_connection_key(message->connection_key()); + outgoing_message->set_protocol_version( + static_cast<application_manager::ProtocolVersion>(message + ->protocol_version())); + outgoing_message->set_json_message( + std::string(reinterpret_cast<const char*>(message->data()), + message->data_size())); + + if (outgoing_message->json_message().empty()) { + return NULL; + } + + return outgoing_message; +} + +application_manager::Message* +MobileMessageHandler::HandleIncomingMessageProtocolV2( + const protocol_handler::RawMessagePtr& message) { + LOG4CXX_INFO(logger_, + "MobileMessageHandler HandleIncomingMessageProtocolV2()"); + + utils::BitStream message_bytestream(message->data(), message->data_size()); + protocol_handler::ProtocolPayloadV2 payload; + protocol_handler::Extract(&message_bytestream, &payload, + message->data_size()); + + // Silently drop message if it wasn't parsed correctly + if (message_bytestream.IsBad()) { + LOG4CXX_INFO(logger_, + "Drop ill-formed message from mobile, partially parsed: " + <<payload); + return NULL; + } + + std::auto_ptr<application_manager::Message> outgoing_message( + new application_manager::Message( + protocol_handler::MessagePriority::FromServiceType( + message->service_type()))); + + outgoing_message->set_json_message(payload.json); + outgoing_message->set_function_id(payload.header.rpc_function_id); + outgoing_message->set_message_type( + MessageTypeFromRpcType(payload.header.rpc_type)); + outgoing_message->set_correlation_id(int32_t(payload.header.corellation_id)); + outgoing_message->set_connection_key(message->connection_key()); + outgoing_message->set_protocol_version( + static_cast<application_manager::ProtocolVersion>(message + ->protocol_version())); + + if (!payload.data.empty()) { + outgoing_message->set_binary_data( + new application_manager::BinaryData(payload.data)); + } + return outgoing_message.release(); +} + +protocol_handler::RawMessage* +MobileMessageHandler::HandleOutgoingMessageProtocolV1( + const MobileMessage& message) { + LOG4CXX_INFO(logger_, + "MobileMessageHandler HandleOutgoingMessageProtocolV1()"); + std::string messageString = message->json_message(); + if (messageString.length() == 0) { + LOG4CXX_INFO(logger_, + "Drop ill-formed message from mobile"); + return NULL; + } + + uint8_t* rawMessage = new uint8_t[messageString.length() + 1]; + memcpy(rawMessage, messageString.c_str(), messageString.length() + 1); + + protocol_handler::RawMessage* result = new protocol_handler::RawMessage( + message->connection_key(), 1, rawMessage, messageString.length() + 1); + + return result; +} + +protocol_handler::RawMessage* +MobileMessageHandler::HandleOutgoingMessageProtocolV2( + const MobileMessage& message) { + LOG4CXX_INFO(logger_, + "MobileMessageHandler HandleOutgoingMessageProtocolV2()"); + if (message->json_message().length() == 0) { + LOG4CXX_ERROR(logger_, "json string is empty.") + } + const uint32_t MAX_HEADER_SIZE = 12; + + uint32_t jsonSize = message->json_message().length(); + uint32_t binarySize = 0; + if (message->has_binary_data()) { + binarySize = message->binary_data()->size(); + } + + uint8_t* dataForSending = new uint8_t[MAX_HEADER_SIZE + jsonSize + + binarySize]; + uint8_t offset = 0; + + uint8_t rpcTypeFlag = 0; + switch (message->type()) { + case application_manager::kRequest: + rpcTypeFlag = kRequest; + break; + case application_manager::kResponse: + rpcTypeFlag = kResponse; + break; + case application_manager::kNotification: + rpcTypeFlag = kNotification; + break; + default: + NOTREACHED(); + break; + } + + uint32_t functionId = message->function_id(); + dataForSending[offset++] = ((rpcTypeFlag << 4) & 0xF0) | (functionId >> 24); + dataForSending[offset++] = functionId >> 16; + dataForSending[offset++] = functionId >> 8; + dataForSending[offset++] = functionId; + + uint32_t correlationId = message->correlation_id(); + dataForSending[offset++] = correlationId >> 24; + dataForSending[offset++] = correlationId >> 16; + dataForSending[offset++] = correlationId >> 8; + dataForSending[offset++] = correlationId; + + dataForSending[offset++] = jsonSize >> 24; + dataForSending[offset++] = jsonSize >> 16; + dataForSending[offset++] = jsonSize >> 8; + dataForSending[offset++] = jsonSize; + + memcpy(dataForSending + offset, message->json_message().c_str(), jsonSize); + + if (message->has_binary_data()) { + const std::vector<uint8_t>& binaryData = *(message->binary_data()); + uint8_t* currentPointer = dataForSending + offset + jsonSize; + for (uint32_t i = 0; i < binarySize; ++i) { + currentPointer[i] = binaryData[i]; + } + } + + protocol_handler::RawMessage* msgToProtocolHandler = + new protocol_handler::RawMessage(message->connection_key(), 2, + dataForSending, + MAX_HEADER_SIZE + jsonSize + binarySize); + + return msgToProtocolHandler; +} +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/policies_manager/policies_manager.cc b/SDL_Core/src/components/application_manager/src/policies_manager/policies_manager.cc new file mode 100644 index 000000000..408d26cd8 --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/policies_manager/policies_manager.cc @@ -0,0 +1,201 @@ +/* + Copyright (c) 2013, Ford Motor Company + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the + distribution. + + Neither the name of the Ford Motor Company nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#include "application_manager/policies_manager/policies_manager.h" + +#include <algorithm> + +#include "json/json.h" +#include "config_profile/profile.h" +#include "utils/file_system.h" + +namespace FunctionID = mobile_apis::FunctionID; + +namespace { +const char kRpcsKey[] = "rpcs"; +const char kHmiLevelsKey[] = "hmi_levels"; + +std::pair<const char*, FunctionID::eType> kFunctionIDsInitializer[] = { + std::make_pair("RegisterAppInterface", FunctionID::RegisterAppInterfaceID), + std::make_pair("UnregisterAppInterface", FunctionID::UnregisterAppInterfaceID), + std::make_pair("SetGlobalProperties", FunctionID::SetGlobalPropertiesID), + std::make_pair("ResetGlobalProperties", FunctionID::ResetGlobalPropertiesID), + std::make_pair("AddCommand", FunctionID::AddCommandID), + std::make_pair("DeleteCommand", FunctionID::DeleteCommandID), + std::make_pair("AddSubMenu", FunctionID::AddSubMenuID), + std::make_pair("DeleteSubMenu", FunctionID::DeleteSubMenuID), + std::make_pair("CreateInteractionChoiceSet", FunctionID::CreateInteractionChoiceSetID), + std::make_pair("PerformInteraction", FunctionID::PerformInteractionID), + std::make_pair("DeleteInteractionChoiceSet", FunctionID::DeleteInteractionChoiceSetID), + std::make_pair("Alert", FunctionID::AlertID), + std::make_pair("Show", FunctionID::ShowID), + std::make_pair("Speak", FunctionID::SpeakID), + std::make_pair("SetMediaClockTimer", FunctionID::SetMediaClockTimerID), + std::make_pair("EncodedSyncPData", FunctionID::EncodedSyncPDataID), + std::make_pair("SyncPData", FunctionID::SyncPDataID), + std::make_pair("PerformAudioPassThru", FunctionID::PerformAudioPassThruID), + std::make_pair("EndAudioPassThru", FunctionID::EndAudioPassThruID), + std::make_pair("SubscribeButton", FunctionID::SubscribeButtonID), + std::make_pair("UnsubscribeButton", FunctionID::UnsubscribeButtonID), + std::make_pair("SubscribeVehicleData", FunctionID::SubscribeVehicleDataID), + std::make_pair("UnsubscribeVehicleData", FunctionID::UnsubscribeVehicleDataID), + std::make_pair("GetVehicleData", FunctionID::GetVehicleDataID), + std::make_pair("ReadDID", FunctionID::ReadDIDID), + std::make_pair("GetDTCs", FunctionID::GetDTCsID), + std::make_pair("DiagnosticMessage", FunctionID::DiagnosticMessageID), + std::make_pair("SystemRequest", FunctionID::SystemRequestID), + std::make_pair("ScrollableMessage", FunctionID::ScrollableMessageID), + std::make_pair("Slider", FunctionID::SliderID), + std::make_pair("ShowConstantTBT", FunctionID::ShowConstantTBTID), + std::make_pair("AlertManeuver", FunctionID::AlertManeuverID), + std::make_pair("UpdateTurnList", FunctionID::UpdateTurnListID), + std::make_pair("ChangeRegistration", FunctionID::ChangeRegistrationID), + std::make_pair("GenericResponse", FunctionID::GenericResponseID), + std::make_pair("PutFile", FunctionID::PutFileID), + std::make_pair("DeleteFile", FunctionID::DeleteFileID), + std::make_pair("ListFiles", FunctionID::ListFilesID), + std::make_pair("SetAppIcon", FunctionID::SetAppIconID), + std::make_pair("SetDisplayLayout", FunctionID::SetDisplayLayoutID), + std::make_pair("OnHMIStatus", FunctionID::OnHMIStatusID), + std::make_pair("OnAppInterfaceUnregistered", FunctionID::OnAppInterfaceUnregisteredID), + std::make_pair("OnButtonEvent", FunctionID::OnButtonEventID), + std::make_pair("OnButtonPress", FunctionID::OnButtonPressID), + std::make_pair("OnVehicleData", FunctionID::OnVehicleDataID), + std::make_pair("OnCommand", FunctionID::OnCommandID), + std::make_pair("OnEncodedSyncPData", FunctionID::OnEncodedSyncPDataID), + std::make_pair("OnTBTClientState", FunctionID::OnTBTClientStateID), + std::make_pair("OnPermissionsChange", FunctionID::OnPermissionsChangeID), + std::make_pair("OnAudioPassThru", FunctionID::OnAudioPassThruID), + std::make_pair("OnLanguageChange", FunctionID::OnLanguageChangeID), + std::make_pair("OnDriverDistraction", FunctionID::OnDriverDistractionID), + std::make_pair("OnSyncPData", FunctionID::EncodedSyncPDataID) +}; +std::map<std::string, FunctionID::eType> kFunctionIDs(kFunctionIDsInitializer, + kFunctionIDsInitializer + + ARRAYSIZE(kFunctionIDsInitializer)); + +std::pair<const char*, mobile_apis::HMILevel::eType> kHmiLevelsInitializer[] = { + std::make_pair("FULL", mobile_apis::HMILevel::HMI_FULL), + std::make_pair("LIMITED", mobile_apis::HMILevel::HMI_LIMITED), + std::make_pair("BACKGROUND", mobile_apis::HMILevel::HMI_BACKGROUND), + std::make_pair("NONE", mobile_apis::HMILevel::HMI_NONE) +}; + +std::map<std::string, mobile_apis::HMILevel::eType> kHmiLevels(kHmiLevelsInitializer, + kHmiLevelsInitializer + + ARRAYSIZE(kHmiLevelsInitializer)); +} // namespace + +namespace application_manager { +namespace policies_manager { + +//! --------------------------------------------------------------------------- + +log4cxx::LoggerPtr PoliciesManager::logger_ = log4cxx::LoggerPtr( + log4cxx::Logger::getLogger("PoliciesManager")); + +//! --------------------------------------------------------------------------- + +PoliciesManager::PoliciesManager() { +} + +PoliciesManager::~PoliciesManager() { +} + +bool PoliciesManager::Init() { + std::string json_string; + std::string policies_file_name = profile::Profile::instance() + ->policies_file_name(); + if (!file_system::FileExists(policies_file_name)) { + return false; + } + + if (!file_system::ReadFile(policies_file_name, json_string)) { + return false; + } + + try { + Json::Reader reader_; + Json::Value json_; + bool parsedSuccess = reader_.parse(json_string, json_, false); + if (!parsedSuccess) { + LOG4CXX_ERROR( + logger_, + "Failed to parse JSON: " << reader_.getFormatedErrorMessages()); + return false; + } + + if (!json_.isMember(kRpcsKey)) { + LOG4CXX_ERROR(logger_, kRpcsKey << " doesn't exist."); + return false; + } + + const Json::Value& items = json_[kRpcsKey]; + for (Json::ValueIterator i = items.begin(); i != items.end(); ++i) { + const Json::Value& item = i.key(); + HmiLevels hmi_levels; + + if (items.isMember(kHmiLevelsKey)) { + continue; + } + + const Json::Value levels = items[item.asString()][kHmiLevelsKey]; + for (uint32_t j = 0; j < levels.size(); ++j) { + hmi_levels.push_back(kHmiLevels[levels[j].asString()]); + } + + items_.insert(PoliciesItem(kFunctionIDs[item.asString()], hmi_levels)); + } + } catch (...) { + return false; + } + + return true; +} + +bool PoliciesManager::IsValidHmiStatus(FunctionID::eType function, + mobile_apis::HMILevel::eType status) { + if (items_.find(function) == items_.end()) { + return false; + } + + HmiLevels levels = items_[function]; + if (std::find(levels.begin(), levels.end(), status) != levels.end()) { + return true; + } + + return false; +} + +} // namespace policies_manager +} // namespace application_manager + diff --git a/SDL_Core/src/components/application_manager/src/request_controller.cc b/SDL_Core/src/components/application_manager/src/request_controller.cc new file mode 100644 index 000000000..5021f721b --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/request_controller.cc @@ -0,0 +1,204 @@ +/** +* Copyright (c) 2013, Ford Motor Company +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* Redistributions of source code must retain the above copyright notice, this +* list of conditions and the following disclaimer. +* +* Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following +* disclaimer in the documentation and/or other materials provided with the +* distribution. +* +* Neither the name of the Ford Motor Company nor the names of its contributors +* may be used to endorse or promote products derived from this software +* without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +*/ + +#include "utils/logger.h" +#include "config_profile/profile.h" +#include "application_manager/request_controller.h" +#include "application_manager/commands/command_request_impl.h" + +namespace application_manager { + +namespace request_controller { +using namespace sync_primitives; + +log4cxx::LoggerPtr logger_ = + log4cxx::LoggerPtr(log4cxx::Logger::getLogger("RequestController")); + +RequestController::RequestController() + : watchdog_(NULL) { + LOG4CXX_INFO(logger_, "RequestController::RequestController()"); + watchdog_ = new request_watchdog::RequestWatchdog; + watchdog_->AddListener(this); +} + +RequestController::~RequestController() { + LOG4CXX_INFO(logger_, "RequestController::~RequestController()"); + request_list_.clear(); + + if (watchdog_) { + watchdog_->RemoveListener(this); + delete watchdog_; + watchdog_ = NULL; + } +} + +RequestController::TResult RequestController::addRequest( + const Request& request, const mobile_apis::HMILevel::eType& hmi_level) { + LOG4CXX_INFO(logger_, "RequestController::addRequest()"); + + RequestController::TResult result = RequestController::SUCCESS; + { + AutoLock auto_lock(request_list_lock_); + + const commands::CommandRequestImpl* request_impl = + static_cast<commands::CommandRequestImpl*>(request.get()); + + const uint32_t& app_hmi_level_none_time_scale = + profile::Profile::instance()->app_hmi_level_none_time_scale(); + + const uint32_t& app_hmi_level_none_max_request_per_time_scale = + profile::Profile::instance()->app_hmi_level_none_time_scale_max_requests(); + + const uint32_t& app_time_scale = + profile::Profile::instance()->app_time_scale(); + + const uint32_t& max_request_per_time_scale = + profile::Profile::instance()->app_time_scale_max_requests(); + + const uint32_t& pending_requests_amount = + profile::Profile::instance()->pending_requests_amount(); + + const mobile_apis::HMILevel::eType hmi_level = + mobile_apis::HMILevel::HMI_NONE; + + if (false == watchdog_->checkHMILevelTimeScaleMaxRequest(hmi_level, + request_impl->connection_key(), app_hmi_level_none_time_scale, + app_hmi_level_none_max_request_per_time_scale)) { + LOG4CXX_ERROR(logger_, "Too many application requests in hmi level NONE"); + result = RequestController::NONE_HMI_LEVEL_MANY_REQUESTS; + } else if (false == watchdog_->checkTimeScaleMaxRequest( + request_impl->connection_key(), + app_time_scale, max_request_per_time_scale)) { + LOG4CXX_ERROR(logger_, "Too many application requests"); + result = RequestController::TOO_MANY_REQUESTS; + } else if (pending_requests_amount == request_list_.size()) { + LOG4CXX_ERROR(logger_, "Too many pending request"); + result = RequestController::TOO_MANY_PENDING_REQUESTS; + } else { + + request_list_.push_back(request); + + LOG4CXX_INFO(logger_, "Adding request to watchdog. Default timeout is " + << request_impl->default_timeout()); + + watchdog_->addRequest(new request_watchdog::RequestInfo( + request_impl->function_id(), + request_impl->connection_key(), + request_impl->correlation_id(), + request_impl->default_timeout(), + hmi_level)); + + LOG4CXX_INFO(logger_, "Added request to watchdog."); + LOG4CXX_INFO(logger_, "RequestController size is " << request_list_.size()); + } + } + + return result; +} + +void RequestController::terminateRequest( + const uint32_t& mobile_correlation_id) { + LOG4CXX_INFO(logger_, "RequestController::terminateRequest()"); + + { + AutoLock auto_lock(request_list_lock_); + std::list<Request>::iterator it = request_list_.begin(); + for (; request_list_.end() != it; ++it) { + const commands::CommandRequestImpl* request_impl = + static_cast<commands::CommandRequestImpl*>(it->get()); + if (request_impl->correlation_id() == mobile_correlation_id) { + watchdog_->removeRequest( + request_impl->connection_key(), request_impl->correlation_id()); + request_list_.erase(it); + break; + } + } + } +} + +void RequestController::terminateAppRequests( + const uint32_t& app_id) { + LOG4CXX_INFO(logger_, "RequestController::terminateAppRequests()"); + + { + AutoLock auto_lock(request_list_lock_); + std::list<Request>::iterator it = request_list_.begin(); + for (; request_list_.end() != it; ++it) { + const commands::CommandRequestImpl* request_impl = + static_cast<commands::CommandRequestImpl*>(it->get()); + if (request_impl->connection_key() == app_id) { + watchdog_->removeRequest( + request_impl->connection_key(), request_impl->correlation_id()); + it = request_list_.erase(it); + } + } + } +} + +void RequestController::updateRequestTimeout( + const uint32_t& connection_key, + const uint32_t& mobile_correlation_id, + const uint32_t& new_timeout) { + LOG4CXX_INFO(logger_, "RequestController::updateRequestTimeout()"); + + watchdog_->updateRequestTimeout(connection_key, + mobile_correlation_id, + new_timeout); +} + +void RequestController::onTimeoutExpired( + const request_watchdog::RequestInfo& info) { + LOG4CXX_INFO(logger_, "RequestController::onTimeoutExpired()"); + + commands::CommandRequestImpl* request_impl = NULL; + { + AutoLock auto_lock(request_list_lock_); + std::list<Request>::iterator it = request_list_.begin(); + for (; request_list_.end() != it; ++it) { + request_impl = static_cast<commands::CommandRequestImpl*>(it->get()); + if (request_impl->correlation_id() == info.correlationID_ && + request_impl->connection_key() == info.connectionID_) { + LOG4CXX_INFO(logger_, "Timeout for request id " << info.correlationID_ + << " of application " << info.connectionID_ << " expired"); + break; + } + } + } + + if (request_impl) { + request_impl->onTimeOut(); + } +} + +} // namespace request_controller + +} // namespace application_manager diff --git a/SDL_Core/src/components/application_manager/src/resume_ctrl.cpp b/SDL_Core/src/components/application_manager/src/resume_ctrl.cpp new file mode 100644 index 000000000..74cb2459d --- /dev/null +++ b/SDL_Core/src/components/application_manager/src/resume_ctrl.cpp @@ -0,0 +1,529 @@ +#include <fstream> + +#include "application_manager/resume_ctrl.h" +#include "config_profile/profile.h" +#include "utils/file_system.h" +#include "connection_handler/connection_handler_impl.h" +#include "application_manager/application_manager_impl.h" +#include "application_manager/application.h" +#include "application_manager/message_helper.h" +#include "smart_objects/smart_object.h" +#include "connection_handler/connection.h" +#include "formatters/CFormatterJsonBase.hpp" +#include "application_manager/commands/command_impl.h" + +namespace application_manager { + log4cxx::LoggerPtr ResumeCtrl::logger_ = log4cxx::LoggerPtr( + log4cxx::Logger::getLogger("ResumeCtrl")); +namespace Formatters = NsSmartDeviceLink::NsJSONHandler::Formatters; + +ResumeCtrl::ResumeCtrl(ApplicationManagerImpl* app_mngr) + : app_mngr_(app_mngr), + timer_(this, &ResumeCtrl::onTimer) { +} + +void ResumeCtrl::SaveAllApplications() { + LOG4CXX_INFO(logger_, " ResumeCtrl::SaveApplications()"); + DCHECK(app_mngr_); + + std::set<ApplicationSharedPtr>::iterator it = + app_mngr_->application_list_.begin(); + std::set<ApplicationSharedPtr>::iterator it_end = + app_mngr_->application_list_.end(); + for (; it != it_end; ++it) { + SaveApplication(*it); + } +} + +void ResumeCtrl::SaveApplication(ApplicationConstSharedPtr application) { + LOG4CXX_INFO(logger_, " ResumeCtrl::SaveApplication"); + DCHECK(application.get()); + + Json::Value* json_app = NULL; + const uint32_t app_id = application->mobile_app_id()->asInt(); + for (std::vector<Json::Value>::iterator it = saved_applications_.begin(); + it != saved_applications_.end(); ++it) { + if ((*it)[strings::app_id].asInt() == app_id) { + json_app = &(*it); + LOG4CXX_INFO(logger_, "ResumeCtrl Application with this id" + "is already exist ( update info ) " << app_id); + break; + } + } + + if (json_app == NULL) { + LOG4CXX_INFO(logger_, "ResumeCtrl Application with this ID does not" + "exist. Add new" << app_id); + saved_applications_.push_back(Json::Value()); + json_app = &(saved_applications_.back()); + } + + uint32_t connection_key = application->app_id(); + (*json_app)[strings::app_id] = app_id; + (*json_app)[strings::connection_key] = connection_key; + (*json_app)[strings::hmi_level] = + static_cast<int32_t> (application->hmi_level()); + (*json_app)[strings::ign_off_count] = 0; + (*json_app)[strings::hash_id] = application->curHash(); + (*json_app)[strings::application_commands] = + GetApplicationCommands(connection_key); + (*json_app)[strings::application_choise_sets] = + GetApplicationInteractionChoiseSets(connection_key); + (*json_app)[strings::application_global_properties] = + GetApplicationGlobalProperties(connection_key); + (*json_app)[strings::application_subscribtions] = + GetApplicationSubscriptions(connection_key); + (*json_app)[strings::application_files] = GetApplicationFiles(connection_key); + (*json_app)[strings::time_stamp] = (uint32_t)time(NULL); +} + +void ResumeCtrl::LoadApplications() { + LOG4CXX_INFO(logger_, "ResumeCtrl::LoadApplications"); + DCHECK(app_mngr_); + + const std::string& storage = + profile::Profile::instance()->app_info_storage(); + Json::Value root; + Json::Reader m_reader; + std::ifstream file(file_system::FullPath(storage).c_str(), + std::ios::in); + if (!file.is_open()) { + LOG4CXX_ERROR(logger_, "Error while opening file"); + return; + } + + m_reader.parse(file, root); + if (root.isNull()) { + LOG4CXX_INFO(logger_, "There are no Saved applications"); + return; + } + + for (Json::Value::iterator it = root.begin(); it != root.end(); ++it) { + Json::Value cur_app_data = (*it); + LOG4CXX_INFO(logger_, "Restored Application: " << + cur_app_data.toStyledString()); + saved_applications_.push_back(cur_app_data); + uint32_t session_key = cur_app_data[strings::connection_key].asUInt(); + } +} + +void ResumeCtrl::on_event(const event_engine::Event& event) { + LOG4CXX_INFO(logger_, "ResumeCtrl::on_event "); +} + +bool ResumeCtrl::RestoreApplicationHMILevel(ApplicationSharedPtr application) { + LOG4CXX_INFO(logger_, "ResumeCtrl::RestoreApplicationHMILevel"); + DCHECK(application.get()); + + for (std::vector<Json::Value>::iterator it = saved_applications_.begin(); + it != saved_applications_.end(); ++it) { + if ((*it)[strings::app_id].asInt() == + application->mobile_app_id()->asInt()) { + + mobile_apis::HMILevel::eType saved_hmi_level; + mobile_apis::HMILevel::eType restored_hmi_level; + + saved_hmi_level = static_cast<mobile_apis::HMILevel::eType>( + (*it)[strings::hmi_level].asInt()); + + if (saved_hmi_level == mobile_apis::HMILevel::HMI_FULL) { + restored_hmi_level = app_mngr_->PutApplicationInFull(application); + } else if (saved_hmi_level == mobile_apis::HMILevel::HMI_LIMITED) { + restored_hmi_level = app_mngr_->PutApplicationInLimited(application); + } else { + restored_hmi_level = saved_hmi_level; + application->set_hmi_level(saved_hmi_level); + } + MessageHelper::SendHMIStatusNotification(*(application.get())); + LOG4CXX_INFO(logger_, "Restore Application " + << (*it)[strings::app_id].asInt() + << " to HMILevel " << restored_hmi_level); + return true; + } + } + + return false; +} + +bool ResumeCtrl::RestoreApplicationData(ApplicationSharedPtr application) { + LOG4CXX_INFO(logger_, "RestoreApplicationData"); + DCHECK(application.get()); + + std::vector<Json::Value>::iterator it = saved_applications_.begin(); + for (; it != saved_applications_.end(); ++it) { + if ((*it)[strings::app_id].asInt() == + application->mobile_app_id()->asInt()) { + break; + } + } + if (it == saved_applications_.end()) { + LOG4CXX_WARN(logger_,"Application not saved"); + return false; + } + + Json::Value& saved_app = *it; + MessageHelper::SmartObjectList requests; + + LOG4CXX_INFO(logger_, saved_app.toStyledString()); + Json::Value& app_commands = saved_app[strings::application_commands]; + Json::Value& app_choise_sets = saved_app[strings::application_choise_sets]; + Json::Value& global_properties = saved_app[strings::application_global_properties]; + Json::Value& subscribtions = saved_app[strings::application_subscribtions]; + + + //add commands + for (Json::Value::iterator json_it = app_commands.begin(); + json_it != app_commands.end(); ++json_it) { + Json::Value& json_command = *json_it; + smart_objects::SmartObject message = smart_objects::SmartObject( + smart_objects::SmartType::SmartType_Map); + Formatters::CFormatterJsonBase::jsonValueToObj(json_command, message); + application->AddCommand(message[strings::cmd_id].asUInt(), message); + } + + requests = MessageHelper::CreateAddCommandRequestToHMI(application); + + for (MessageHelper::SmartObjectList::iterator it = requests.begin(); + it != requests.end(); ++it) { + ProcessHMIRequest(*it, true); + } + + //add choisets + for (Json::Value::iterator json_it = app_choise_sets.begin(); + json_it != app_choise_sets.end(); ++json_it) { + Json::Value& json_choiset = *json_it; + smart_objects::SmartObject msg_param = smart_objects::SmartObject( + smart_objects::SmartType::SmartType_Map); + Formatters::CFormatterJsonBase::jsonValueToObj(json_choiset , msg_param); + const int32_t choice_set_id = msg_param + [strings::interaction_choice_set_id].asInt(); + application->AddChoiceSet(choice_set_id, msg_param); + } + + //setglobal properties + if (!global_properties.isNull()) { + smart_objects::SmartObject properties_so = smart_objects::SmartObject( + smart_objects::SmartType::SmartType_Map); + Formatters::CFormatterJsonBase::jsonValueToObj(global_properties , properties_so); + + application->set_vr_help_title( + properties_so.getElement(strings::vr_help_title)); + application->set_vr_help( + properties_so.getElement(strings::vr_help)); + application->set_timeout_prompt( + properties_so.getElement(strings::timeout_prompt)); + application->set_help_prompt( + properties_so.getElement(strings::help_prompt)); + MessageHelper::SendGlobalPropertiesToHMI(application); + } + + //subscribes + if (!subscribtions.isNull()) { + Json::Value& subscribtions_buttons = subscribtions[strings::application_buttons]; + Json::Value& subscribtions_ivi= subscribtions[strings::application_vehicle_info]; + for (Json::Value::iterator json_it = subscribtions_buttons.begin(); + json_it != subscribtions_buttons.end(); ++json_it) { + mobile_apis::ButtonName::eType btn; + btn = static_cast<mobile_apis::ButtonName::eType>((*json_it).asInt()); + application->SubscribeToButton(btn); + } + + for (Json::Value::iterator json_it = subscribtions_ivi.begin(); + json_it != subscribtions_ivi.end(); ++json_it) { + VehicleDataType ivi; + ivi = static_cast<VehicleDataType>((*json_it).asInt()); + LOG4CXX_INFO(logger_, "VehicleDataType :" << ivi); + bool result = application->SubscribeToIVI(ivi); + LOG4CXX_INFO(logger_, "result = :" << result); + } + requests = MessageHelper::GetIVISubscribtionRequests(application->app_id()); + + for (MessageHelper::SmartObjectList::iterator it = requests.begin(); + it != requests.end(); ++it) { + ProcessHMIRequest(*it,true); + } + } + return true; +} + +bool ResumeCtrl::ApplicationIsSaved(const uint32_t app_id) { + LOG4CXX_INFO(logger_, "ResumeCtrl::ApplicationIsSaved " << app_id); + + for (std::vector<Json::Value>::iterator it = saved_applications_.begin(); + it != saved_applications_.end(); ++it) { + if ((*it)[strings::connection_key].asInt() == app_id) { + return true; + } + } + return false; +} + +bool ResumeCtrl::RemoveApplicationFromSaved(ApplicationConstSharedPtr application) { + LOG4CXX_INFO(logger_, "ResumeCtrl::RemoveApplicationFromSaved "); + DCHECK(application.get()); + + for (std::vector<Json::Value>::iterator it = saved_applications_.begin(); + it != saved_applications_.end(); ) { + if ((*it)[strings::app_id].asInt() == application->mobile_app_id()->asInt()) { + saved_applications_.erase(it); + return true; + } else { + ++it; + } + } + return false; +} + +void ResumeCtrl::SavetoFileSystem() { + LOG4CXX_INFO(logger_, "ResumeCtrl::SavetoFileSystem()"); + + const std::string& storage = + profile::Profile::instance()->app_info_storage(); + std::ofstream file(file_system::FullPath(storage).c_str(), + std::ios::out); + Json::Value to_save; + for (std::vector<Json::Value>::iterator it = saved_applications_.begin(); + it != saved_applications_.end(); ++it) { + uint32_t ign_off_count = (*it)[strings::ign_off_count].asUInt(); + if (ign_off_count < kApplicationLifes) { + ign_off_count++; + (*it)[strings::ign_off_count] = ign_off_count; + to_save.append(*it); + } + } + + if (file.is_open()) { + file << to_save.toStyledString(); + } else { + LOG4CXX_ERROR(logger_, "An error occurred during save"); + } + file.close(); +} + + +bool ResumeCtrl::StartResumption(ApplicationSharedPtr application, + uint32_t hash) { + + LOG4CXX_INFO(logger_, "ResumeCtrl::StartResumption " << hash); + DCHECK(application.get()); + sync_primitives::AutoLock auto_lock(queue_lock_); + + std::vector<Json::Value>::iterator it = saved_applications_.begin(); + for (; it != saved_applications_.end(); ++it) { + if ((*it)[strings::app_id].asInt() == + application->mobile_app_id()->asInt()) { + + uint32_t saved_hash = (*it)[strings::hash_id].asUInt(); + uint32_t time_stamp= (*it)[strings::time_stamp].asUInt(); + if (hash == saved_hash) { + RestoreApplicationData(application); + } + + waiting_for_timer_.insert(std::make_pair(application->app_id(), + time_stamp)); + timer_.start(kTimeStep); + return true; + } + } + + return false; +} + +bool ResumeCtrl::CheckApplicationHash(uint32_t app_id, uint32_t hash) { + std::vector<Json::Value>::iterator it = saved_applications_.begin(); + for (; it != saved_applications_.end(); ++it) { + if ((*it)[strings::app_id].asInt() == app_id) { + uint32_t saved_hash = (*it)[strings::hash_id].asUInt(); + if (hash == saved_hash) { + return true; + } + } + } + + return false; +} + +void ResumeCtrl::onTimer() { + LOG4CXX_INFO(logger_, "ResumeCtrl::onTimer()"); + sync_primitives::AutoLock auto_lock(queue_lock_); + + std::set<application_timestamp, TimeStampComparator>::iterator it= + waiting_for_timer_.begin(); + + for (; it != waiting_for_timer_.end(); ++it) { + ApplicationSharedPtr app = + ApplicationManagerImpl::instance()->application((*it).first); + if (!app.get()) { + LOG4CXX_ERROR(logger_, "Invalid app_id = " << (*it).first); + break; + } + + RestoreApplicationHMILevel(app); + RemoveApplicationFromSaved(app); + } + + waiting_for_timer_.clear(); +} + +Json::Value ResumeCtrl::GetApplicationCommands(const uint32_t app_id) { + LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationCommands" << app_id); + + ApplicationConstSharedPtr app = + ApplicationManagerImpl::instance()->application(app_id); + DCHECK(app.get()); + + Json::Value result; + const CommandsMap& commands = app->commands_map(); + CommandsMap::const_iterator it = commands.begin(); + for (;it != commands.end(); ++it) { + smart_objects::SmartObject* so = it->second; + Json::Value curr; + Formatters::CFormatterJsonBase::objToJsonValue(*so, curr); + result.append(curr); + LOG4CXX_INFO(logger_, "Converted:" << curr.toStyledString()); + } + return result; +} + +Json::Value ResumeCtrl::GetApplicationInteractionChoiseSets( + const uint32_t app_id) { + LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationInteractionChoiseSets" + << app_id); + + Json::Value result; + ApplicationConstSharedPtr app = + ApplicationManagerImpl::instance()->application(app_id); + DCHECK(app.get()); + + const ChoiceSetMap& choices = app->choice_set_map(); + ChoiceSetMap::const_iterator it = choices.begin(); + for ( ;it != choices.end(); ++it) { + smart_objects::SmartObject* so = it->second; + Json::Value curr; + Formatters::CFormatterJsonBase::objToJsonValue(*so, curr); + result.append(curr); + LOG4CXX_INFO(logger_, "Converted:" << curr.toStyledString()); + } + return result; +} + +Json::Value ResumeCtrl::GetApplicationGlobalProperties(const uint32_t app_id) { + LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationGlobalProperties" << app_id); + + Json::Value result; + ApplicationConstSharedPtr app = + ApplicationManagerImpl::instance()->application(app_id); + DCHECK(app.get()); + + const smart_objects::SmartObject* help_promt = app->help_prompt(); + const smart_objects::SmartObject* timeout_prompt = app->timeout_prompt(); + const smart_objects::SmartObject* vr_help = app->vr_help(); + const smart_objects::SmartObject* vr_help_title = app->vr_help_title(); + const smart_objects::SmartObject* vr_synonyms = app->vr_synonyms(); + + Json::Value sgp; + sgp[strings::help_prompt] = JsonFromSO(help_promt); + sgp[strings::timeout_prompt] = JsonFromSO(timeout_prompt); + sgp[strings::vr_help] = JsonFromSO(vr_help); + sgp[strings::vr_help_title] = JsonFromSO(vr_help_title); + sgp[strings::vr_synonyms] = JsonFromSO(vr_synonyms); + + return sgp; +} + +Json::Value ResumeCtrl::GetApplicationSubscriptions(const uint32_t app_id) { + LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationSubscriptions" << app_id); + + Json::Value result; + ApplicationConstSharedPtr app = + ApplicationManagerImpl::instance()->application(app_id); + DCHECK(app.get()); + + std::set<mobile_apis::ButtonName::eType>::iterator it_button ; + std::set<uint32_t>::iterator it_vehicle; + + for (it_button = app->SubscribedButtons().begin() ; + it_button != app->SubscribedButtons().end(); ++it_button) { + result[strings::application_buttons].append(*it_button); + } + for (it_vehicle = app->SubscribesIVI().begin(); + it_vehicle != app->SubscribesIVI().end(); ++it_vehicle) { + result[strings::application_vehicle_info].append(*it_vehicle); + } + return result; +} + +Json::Value ResumeCtrl::GetApplicationFiles(const uint32_t app_id) { + LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationFiles" << app_id); + + Json::Value result; + ApplicationConstSharedPtr app = + ApplicationManagerImpl::instance()->application(app_id); + DCHECK(app.get()); + + const AppFilesMap& app_files = app->getAppFiles(); + for(AppFilesMap::const_iterator file_it = app_files.begin(); + file_it != app_files.end(); file_it++) { + const AppFile& file = file_it->second; + if (file.is_persistent) { + Json::Value file_data; + file_data[strings::persistent_file] = file.is_persistent; + file_data[strings::is_download_complete] = file.is_download_complete; + file_data[strings::sync_file_name] = file.file_name; + result.append(file_data); + } + } + return result; +} + +Json::Value ResumeCtrl::JsonFromSO(const smart_objects::SmartObject *so) { + Json::Value temp; + if (so) { + Formatters::CFormatterJsonBase::objToJsonValue(*so, temp); + } + return temp; +} + +bool ResumeCtrl::ProcessHMIRequest(smart_objects::SmartObject* request, + bool use_events) { + if (use_events) { + const hmi_apis::FunctionID::eType function_id = + static_cast<hmi_apis::FunctionID::eType>( + (*request)[strings::function_id].asInt()); + + const int32_t hmi_correlation_id = + (*request)[strings::correlation_id].asInt(); + subscribe_on_event(function_id, hmi_correlation_id); + } + if (!ApplicationManagerImpl::instance()->ManageHMICommand(request)) { + LOG4CXX_ERROR(logger_, "Unable to send request"); + return true; + } + return false; +} + +void ResumeCtrl::SendHMIRequest( + const hmi_apis::FunctionID::eType& function_id, + const smart_objects::SmartObject* msg_params, bool use_events) { + + NsSmartDeviceLink::NsSmartObjects::SmartObject* result = + MessageHelper::CreateModuleInfoSO(function_id); + int32_t hmi_correlation_id = + (*result)[strings::params][strings::correlation_id].asInt(); + if (use_events) { + subscribe_on_event(function_id, hmi_correlation_id); + } + + if (msg_params) { + (*result)[strings::msg_params] = *msg_params; + } + + if (!ApplicationManagerImpl::instance()->ManageHMICommand(result)) { + LOG4CXX_ERROR(logger_, "Unable to send request"); + } +} + +} // namespace application_manager + + + |