summaryrefslogtreecommitdiff
path: root/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_request.cc
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/src/commands/hmi/navi_audio_start_stream_request.cc
parent81208d859b07241abe8706d51eccbb74db72140b (diff)
downloadsdl_core-28d88105cdfdcaff75688483f3bd89f046f42b68.tar.gz
Rework stream HMI requests and responses.
Diffstat (limited to 'src/components/application_manager/src/commands/hmi/navi_audio_start_stream_request.cc')
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_audio_start_stream_request.cc48
1 files changed, 41 insertions, 7 deletions
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
-