diff options
Diffstat (limited to 'src/components/application_manager/include/application_manager/hmi_state.h')
-rw-r--r-- | src/components/application_manager/include/application_manager/hmi_state.h | 151 |
1 files changed, 95 insertions, 56 deletions
diff --git a/src/components/application_manager/include/application_manager/hmi_state.h b/src/components/application_manager/include/application_manager/hmi_state.h index f2d665d998..07d9c8dc23 100644 --- a/src/components/application_manager/include/application_manager/hmi_state.h +++ b/src/components/application_manager/include/application_manager/hmi_state.h @@ -33,9 +33,10 @@ #ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_HMI_STATE_H_ #define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_HMI_STATE_H_ +#include <iosfwd> #include <list> +#include <memory> #include "interfaces/MOBILE_API.h" -#include "utils/shared_ptr.h" #include "utils/macro.h" namespace application_manager { @@ -44,7 +45,7 @@ class HmiState; class ApplicationManager; class Application; -typedef utils::SharedPtr<HmiState> HmiStatePtr; +typedef std::shared_ptr<HmiState> HmiStatePtr; /** * @brief The HmiState class @@ -53,10 +54,12 @@ typedef utils::SharedPtr<HmiState> HmiStatePtr; * */ class HmiState { + friend std::ostream& operator<<(std::ostream& os, const HmiState& src); + public: /** * @brief The StateID enum describes state of application - * If no events occured STATE_ID_DEFAULT shuld be presented + * If no events occurred STATE_ID_DEFAULT should be presented */ enum StateID { STATE_ID_CURRENT, @@ -66,6 +69,7 @@ class HmiState { STATE_ID_SAFETY_MODE, STATE_ID_VR_SESSION, STATE_ID_TTS_SESSION, + STATE_ID_VIDEO_STREAMING, STATE_ID_NAVI_STREAMING, STATE_ID_DEACTIVATE_HMI, STATE_ID_AUDIO_SOURCE, @@ -77,7 +81,7 @@ class HmiState { * @param app Application pointer * @param app_mngr Application manager */ - HmiState(utils::SharedPtr<Application> app, + HmiState(std::shared_ptr<Application> app, const ApplicationManager& app_mngr); /** @@ -86,26 +90,7 @@ class HmiState { * @param app_mngr Application manager * @param state_id HMI state to assign */ - HmiState(utils::SharedPtr<Application> app, - const ApplicationManager& app_mngr, - StateID state_id); - - /** - * DEPRECATED - * @brief HmiState constructor - * @param app_id Application id - * @param app_mngr Application manager - */ - HmiState(uint32_t app_id, const ApplicationManager& app_mngr); - - /** - * DEPRECATED - * @brief HmiState constructor - * @param app_id Application id - * @param app_mngr Application manager - * @param state_id HMI state to assign - */ - HmiState(uint32_t app_id, + HmiState(std::shared_ptr<Application> app, const ApplicationManager& app_mngr, StateID state_id); @@ -154,6 +139,28 @@ class HmiState { } return audio_streaming_state_; } + + /** + * @brief video_streaming_state + * @return return video streaming state member + */ + virtual mobile_apis::VideoStreamingState::eType video_streaming_state() + const { + if (parent_) { + return parent_->video_streaming_state(); + } + return video_streaming_state_; + } + + /** + * @brief set_video_streaming_state set set_video_streaming_state member + * @param video_state video_state to setup + */ + virtual void set_video_streaming_state( + mobile_apis::VideoStreamingState::eType video_state) { + video_streaming_state_ = video_state; + } + /** * @brief set_audio_streaming_state set audio_streaming_state member * @param audio_state audio_state to setup @@ -195,17 +202,18 @@ class HmiState { * @brief set_state_id sets state id * @param state_id state id to setup */ - virtual void set_state_id(StateID state_id) { + void set_state_id(StateID state_id) { state_id_ = state_id; } protected: - utils::SharedPtr<Application> app_; + std::shared_ptr<Application> app_; StateID state_id_; const ApplicationManager& app_mngr_; HmiStatePtr parent_; mobile_apis::HMILevel::eType hmi_level_; mobile_apis::AudioStreamingState::eType audio_streaming_state_; + mobile_apis::VideoStreamingState::eType video_streaming_state_; mobile_apis::SystemContext::eType system_context_; protected: @@ -245,10 +253,8 @@ class VRHmiState : public HmiState { public: virtual mobile_apis::AudioStreamingState::eType audio_streaming_state() const OVERRIDE; - VRHmiState(utils::SharedPtr<Application> app, + VRHmiState(std::shared_ptr<Application> app, const ApplicationManager& app_mngr); - - DEPRECATED VRHmiState(uint32_t app_id, const ApplicationManager& app_mngr); }; /** @@ -256,26 +262,34 @@ class VRHmiState : public HmiState { */ class TTSHmiState : public HmiState { public: - TTSHmiState(utils::SharedPtr<Application> app, + TTSHmiState(std::shared_ptr<Application> app, const ApplicationManager& app_mngr); - DEPRECATED TTSHmiState(uint32_t app_id, const ApplicationManager& app_mngr); - virtual mobile_apis::AudioStreamingState::eType audio_streaming_state() const OVERRIDE; }; /** - * @brief The NaviStreamingState class implements logic of NaviStreaming + * @brief The VideoStreamingState class implements logic of video streaming * temporary state */ -class NaviStreamingHmiState : public HmiState { +class VideoStreamingHmiState : public HmiState { public: - NaviStreamingHmiState(utils::SharedPtr<Application> app, - const ApplicationManager& app_mngr); + VideoStreamingHmiState(std::shared_ptr<Application> app, + const ApplicationManager& app_mngr); - DEPRECATED NaviStreamingHmiState(uint32_t app_id, - const ApplicationManager& app_mngr); + mobile_apis::VideoStreamingState::eType video_streaming_state() + const OVERRIDE; +}; + +/** + * @brief The NaviStreamingHmiState class implements logic of navigation + * streaming temporary state that is more specific than VideoStreamingHmiState + */ +class NaviStreamingHmiState : public VideoStreamingHmiState { + public: + NaviStreamingHmiState(std::shared_ptr<Application> app, + const ApplicationManager& app_mngr); mobile_apis::AudioStreamingState::eType audio_streaming_state() const OVERRIDE; @@ -287,12 +301,9 @@ class NaviStreamingHmiState : public HmiState { */ class PhoneCallHmiState : public HmiState { public: - PhoneCallHmiState(utils::SharedPtr<Application> app, + PhoneCallHmiState(std::shared_ptr<Application> app, const ApplicationManager& app_mngr); - DEPRECATED PhoneCallHmiState(uint32_t app_id, - const ApplicationManager& app_mngr); - mobile_apis::HMILevel::eType hmi_level() const OVERRIDE; mobile_apis::AudioStreamingState::eType audio_streaming_state() const OVERRIDE { @@ -306,16 +317,17 @@ class PhoneCallHmiState : public HmiState { */ class SafetyModeHmiState : public HmiState { public: - SafetyModeHmiState(utils::SharedPtr<Application> app, + SafetyModeHmiState(std::shared_ptr<Application> app, const ApplicationManager& app_mngr); - DEPRECATED SafetyModeHmiState(uint32_t app_id, - const ApplicationManager& app_mngr); - mobile_apis::AudioStreamingState::eType audio_streaming_state() const OVERRIDE { return mobile_apis::AudioStreamingState::NOT_AUDIBLE; } + mobile_apis::VideoStreamingState::eType video_streaming_state() + const OVERRIDE { + return mobile_apis::VideoStreamingState::NOT_STREAMABLE; + } }; /** @@ -324,16 +336,18 @@ class SafetyModeHmiState : public HmiState { */ class DeactivateHMI : public HmiState { public: - DeactivateHMI(utils::SharedPtr<Application> app, + DeactivateHMI(std::shared_ptr<Application> app, const ApplicationManager& app_mngr); - DEPRECATED DeactivateHMI(uint32_t app_id, const ApplicationManager& app_mngr); - mobile_apis::HMILevel::eType hmi_level() const OVERRIDE; mobile_apis::AudioStreamingState::eType audio_streaming_state() const OVERRIDE { return mobile_apis::AudioStreamingState::NOT_AUDIBLE; } + mobile_apis::VideoStreamingState::eType video_streaming_state() + const OVERRIDE { + return mobile_apis::VideoStreamingState::NOT_STREAMABLE; + } }; /** @@ -342,16 +356,21 @@ class DeactivateHMI : public HmiState { */ class AudioSource : public HmiState { public: - AudioSource(utils::SharedPtr<Application> app, + AudioSource(std::shared_ptr<Application> app, const ApplicationManager& app_mngr); - DEPRECATED AudioSource(uint32_t app_id, const ApplicationManager& app_mngr); - mobile_apis::HMILevel::eType hmi_level() const OVERRIDE; mobile_apis::AudioStreamingState::eType audio_streaming_state() const OVERRIDE { return mobile_apis::AudioStreamingState::NOT_AUDIBLE; } + mobile_apis::VideoStreamingState::eType video_streaming_state() + const OVERRIDE { + return mobile_apis::VideoStreamingState::NOT_STREAMABLE; + } + + private: + bool keep_context_; }; /** @@ -361,16 +380,36 @@ class AudioSource : public HmiState { */ class EmbeddedNavi : public HmiState { public: - EmbeddedNavi(utils::SharedPtr<Application> app, + EmbeddedNavi(std::shared_ptr<Application> app, const ApplicationManager& app_mngr); - DEPRECATED EmbeddedNavi(uint32_t app_id, const ApplicationManager& app_mngr); - mobile_apis::HMILevel::eType hmi_level() const OVERRIDE; mobile_apis::AudioStreamingState::eType audio_streaming_state() const OVERRIDE { return mobile_apis::AudioStreamingState::NOT_AUDIBLE; } + mobile_apis::VideoStreamingState::eType video_streaming_state() + const OVERRIDE { + return mobile_apis::VideoStreamingState::NOT_STREAMABLE; + } }; -} + +/** + * @brief Outputs StateID to ostream in human readable format + * @param os output stream to insert data to + * @param src StateID value to output + * @return os + */ +std::ostream& operator<<(std::ostream& os, const HmiState::StateID src); + +/** + * @brief Outputs HmiState to ostream in human readable format + * @param os output stream to insert data to + * @param src HmiState value to output + * @return os + */ +std::ostream& operator<<(std::ostream& os, const HmiState& src); + +} // namespace application_manager + #endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_HMI_STATE_H_ |