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 | 87 |
1 files changed, 79 insertions, 8 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..a22d32920a 100644 --- a/src/components/application_manager/include/application_manager/hmi_state.h +++ b/src/components/application_manager/include/application_manager/hmi_state.h @@ -33,6 +33,7 @@ #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 "interfaces/MOBILE_API.h" #include "utils/shared_ptr.h" @@ -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, @@ -154,6 +158,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,7 +221,7 @@ 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; } @@ -206,6 +232,7 @@ class HmiState { 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: @@ -266,17 +293,27 @@ class TTSHmiState : public HmiState { }; /** - * @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: + VideoStreamingHmiState(utils::SharedPtr<Application> app, + 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(utils::SharedPtr<Application> app, const ApplicationManager& app_mngr); - DEPRECATED NaviStreamingHmiState(uint32_t app_id, - const ApplicationManager& app_mngr); - mobile_apis::AudioStreamingState::eType audio_streaming_state() const OVERRIDE; }; @@ -316,6 +353,10 @@ class SafetyModeHmiState : public HmiState { const OVERRIDE { return mobile_apis::AudioStreamingState::NOT_AUDIBLE; } + mobile_apis::VideoStreamingState::eType video_streaming_state() + const OVERRIDE { + return mobile_apis::VideoStreamingState::NOT_STREAMABLE; + } }; /** @@ -334,6 +375,10 @@ class DeactivateHMI : public HmiState { const OVERRIDE { return mobile_apis::AudioStreamingState::NOT_AUDIBLE; } + mobile_apis::VideoStreamingState::eType video_streaming_state() + const OVERRIDE { + return mobile_apis::VideoStreamingState::NOT_STREAMABLE; + } }; /** @@ -352,6 +397,10 @@ class AudioSource : public HmiState { const OVERRIDE { return mobile_apis::AudioStreamingState::NOT_AUDIBLE; } + mobile_apis::VideoStreamingState::eType video_streaming_state() + const OVERRIDE { + return mobile_apis::VideoStreamingState::NOT_STREAMABLE; + } }; /** @@ -371,6 +420,28 @@ class EmbeddedNavi : public HmiState { 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_ |