summaryrefslogtreecommitdiff
path: root/src/components/application_manager
diff options
context:
space:
mode:
authorArtem Nosach <ANosach@luxoft.com>2015-04-06 22:25:10 +0300
committerArtem Nosach <ANosach@luxoft.com>2015-04-23 15:33:23 +0300
commit28d88105cdfdcaff75688483f3bd89f046f42b68 (patch)
tree4733ce0af8121385e4ffc3c876394252674a5421 /src/components/application_manager
parent81208d859b07241abe8706d51eccbb74db72140b (diff)
downloadsdl_core-28d88105cdfdcaff75688483f3bd89f046f42b68.tar.gz
Rework stream HMI requests and responses.
Diffstat (limited to 'src/components/application_manager')
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/navi_audio_start_stream_request.h9
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h9
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_audio_start_stream_request.cc48
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_audio_start_stream_response.cc21
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc50
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc22
6 files changed, 107 insertions, 52 deletions
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/navi_audio_start_stream_request.h b/src/components/application_manager/include/application_manager/commands/hmi/navi_audio_start_stream_request.h
index 97de7102f7..61f3680f89 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/navi_audio_start_stream_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/navi_audio_start_stream_request.h
@@ -34,6 +34,7 @@
#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_AUDIO_START_STREAM_REQUEST_H_
#include "application_manager/commands/hmi/request_to_hmi.h"
+#include "application_manager/event_engine/event_observer.h"
namespace application_manager {
@@ -42,7 +43,8 @@ namespace commands {
/**
* @brief AudioStartStreamRequest command class
**/
-class AudioStartStreamRequest : public RequestToHMI {
+class AudioStartStreamRequest : public RequestToHMI,
+ public event_engine::EventObserver {
public:
/**
* @brief AudioStartStreamRequest class constructor
@@ -61,6 +63,11 @@ class AudioStartStreamRequest : public RequestToHMI {
**/
virtual void Run();
+ /**
+ * @brief On event callback
+ **/
+ virtual void on_event(const event_engine::Event& event);
+
private:
DISALLOW_COPY_AND_ASSIGN(AudioStartStreamRequest);
};
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h b/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h
index 5b73e2dbab..eb5624c0ef 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h
@@ -34,6 +34,7 @@
#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_START_STREAM_REQUEST_H_
#include "application_manager/commands/hmi/request_to_hmi.h"
+#include "application_manager/event_engine/event_observer.h"
namespace application_manager {
@@ -42,7 +43,8 @@ namespace commands {
/**
* @brief NaviStartStreamRequest command class
**/
-class NaviStartStreamRequest : public RequestToHMI {
+class NaviStartStreamRequest : public RequestToHMI,
+ public event_engine::EventObserver {
public:
/**
* @brief NaviStartStreamRequest class constructor
@@ -61,6 +63,11 @@ class NaviStartStreamRequest : public RequestToHMI {
**/
virtual void Run();
+ /**
+ * @brief On event callback
+ **/
+ virtual void on_event(const event_engine::Event& event);
+
private:
DISALLOW_COPY_AND_ASSIGN(NaviStartStreamRequest);
};
diff --git a/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_request.cc b/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_request.cc
index 140a5bcc63..1e0d69f3e1 100644
--- a/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_request.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_request.cc
@@ -32,7 +32,6 @@
#include "application_manager/commands/hmi/navi_audio_start_stream_request.h"
#include "application_manager/application_manager_impl.h"
-#include "application_manager/application_impl.h"
namespace application_manager {
@@ -49,19 +48,54 @@ AudioStartStreamRequest::~AudioStartStreamRequest() {
void AudioStartStreamRequest::Run() {
LOG4CXX_AUTO_TRACE(logger_);
- ApplicationSharedPtr app =
- ApplicationManagerImpl::instance()->active_application();
+ subscribe_on_event(hmi_apis::FunctionID::Navigation_StartAudioStream,
+ correlation_id());
+ SendRequest();
+}
+
+void AudioStartStreamRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ ApplicationManagerImpl* app_mgr = ApplicationManagerImpl::instance();
+ if (!app_mgr) {
+ LOG4CXX_ERROR_EXT(logger_, "Application manager not found");
+ return;
+ }
+ ApplicationSharedPtr app = app_mgr->application_by_hmi_app(application_id());
if (!app) {
- LOG4CXX_ERROR_EXT(logger_, "AudioStartStreamRequest no active app!");
+ LOG4CXX_ERROR_EXT(logger_,
+ "StartAudioStreamRequest aborted. Application not found");
return;
}
- SendRequest();
- app->StartAudioStartStreamRetryTimer();
+ const smart_objects::SmartObject& message = event.smart_object();
+ switch (event.id()) {
+ case hmi_apis::FunctionID::Navigation_StartAudioStream: {
+ LOG4CXX_INFO(logger_, "Received StartStream event");
+
+ 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_, "StartAudioStreamResponse SUCCESS");
+ if (app_mgr->IsStreamingAllowed(app->app_id(), ServiceType::kAudio)) {
+ app->set_audio_streaming_started(true);
+ } else {
+ LOG4CXX_INFO(logger_,
+ "StartAudioStreamRequest aborted. Application can not stream");
+ }
+ }
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_,"Received unknown event" << event.id());
+ return;
+ }
+ }
}
} // namespace commands
} // namespace application_manager
-
diff --git a/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_response.cc b/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_response.cc
index b294616c43..9f9a3e0ec0 100644
--- a/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_response.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_response.cc
@@ -30,8 +30,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include "application_manager/commands/hmi/navi_audio_start_stream_response.h"
-#include "application_manager/application_manager_impl.h"
-#include "application_manager/application_impl.h"
+#include "application_manager/event_engine/event_dispatcher.h"
namespace application_manager {
@@ -46,22 +45,10 @@ AudioStartStreamResponse::~AudioStartStreamResponse() {
void AudioStartStreamResponse::Run() {
LOG4CXX_AUTO_TRACE(logger_);
- 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_, "AudioStartStreamResponse SUCCESS");
- app->set_hmi_supports_navi_audio_streaming(true);
- }
+ event_engine::Event event(hmi_apis::FunctionID::Navigation_StartAudioStream);
+ event.set_smart_object(*message_);
+ event.raise();
}
} // namespace commands
diff --git a/src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc b/src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc
index 338f03c739..ef6c6a41bd 100644
--- a/src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc
@@ -32,7 +32,6 @@
#include "application_manager/commands/hmi/navi_start_stream_request.h"
#include "application_manager/application_manager_impl.h"
-#include "application_manager/application_impl.h"
namespace application_manager {
@@ -44,25 +43,60 @@ NaviStartStreamRequest::NaviStartStreamRequest(
}
NaviStartStreamRequest::~NaviStartStreamRequest() {
+ LOG4CXX_AUTO_TRACE(logger_);
}
void NaviStartStreamRequest::Run() {
LOG4CXX_AUTO_TRACE(logger_);
- ApplicationSharedPtr app =
- ApplicationManagerImpl::instance()->active_application();
+ subscribe_on_event(hmi_apis::FunctionID::Navigation_StartStream,
+ correlation_id());
+ SendRequest();
+}
+
+void NaviStartStreamRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ ApplicationManagerImpl* app_mgr = ApplicationManagerImpl::instance();
+ if (!app_mgr) {
+ LOG4CXX_ERROR_EXT(logger_, "Application manager not found");
+ return;
+ }
+ ApplicationSharedPtr app = app_mgr->application_by_hmi_app(application_id());
if (!app) {
- LOG4CXX_ERROR_EXT(logger_, "NaviStartStreamRequest no active app!");
+ LOG4CXX_ERROR_EXT(logger_,
+ "NaviStartStreamRequest aborted. Application not found");
return;
}
- SendRequest();
- app->StartVideoStartStreamRetryTimer();
+ const smart_objects::SmartObject& message = event.smart_object();
+ switch (event.id()) {
+ case hmi_apis::FunctionID::Navigation_StartStream: {
+ LOG4CXX_INFO(logger_, "Received StartStream event");
+
+ 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");
+ if (app_mgr->IsStreamingAllowed(app->app_id(), ServiceType::kMobileNav)) {
+ app->set_video_streaming_started(true);
+ } else {
+ LOG4CXX_INFO(logger_,
+ "NaviStartStreamRequest aborted. Application can not stream");
+ }
+ }
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_,"Received unknown event" << event.id());
+ return;
+ }
+ }
}
} // namespace commands
} // namespace application_manager
-
-
diff --git a/src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc b/src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc
index e8da6e1276..a65e116796 100644
--- a/src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc
@@ -30,8 +30,7 @@
* 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"
+#include "application_manager/event_engine/event_dispatcher.h"
namespace application_manager {
@@ -47,22 +46,9 @@ NaviStartStreamResponse::~NaviStartStreamResponse() {
void NaviStartStreamResponse::Run() {
LOG4CXX_AUTO_TRACE(logger_);
- 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_video_streaming(true);
- }
+ event_engine::Event event(hmi_apis::FunctionID::Navigation_StartStream);
+ event.set_smart_object(*message_);
+ event.raise();
}
} // namespace commands