summaryrefslogtreecommitdiff
path: root/src/components/application_manager/include/application_manager/hmi_state.h
diff options
context:
space:
mode:
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.h87
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_