summaryrefslogtreecommitdiff
path: root/src/components/application_manager/src
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/application_manager/src')
-rw-r--r--src/components/application_manager/src/application_impl.cc19
-rw-r--r--src/components/application_manager/src/application_manager_impl.cc68
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_audio_start_stream_request.cc8
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_audio_start_stream_response.cc1
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc8
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc1
-rw-r--r--src/components/application_manager/src/hmi_state.cc3
7 files changed, 62 insertions, 46 deletions
diff --git a/src/components/application_manager/src/application_impl.cc b/src/components/application_manager/src/application_impl.cc
index 03f39d6844..2d848ad2c3 100644
--- a/src/components/application_manager/src/application_impl.cc
+++ b/src/components/application_manager/src/application_impl.cc
@@ -35,6 +35,7 @@
#include "application_manager/application_impl.h"
#include "application_manager/message_helper.h"
#include "application_manager/application_manager_impl.h"
+#include "protocol_handler/protocol_handler.h"
#include "config_profile/profile.h"
#include "interfaces/MOBILE_API.h"
#include "utils/file_system.h"
@@ -438,7 +439,9 @@ bool ApplicationImpl::audio_streaming_allowed() const {
return audio_streaming_allowed_;
}
-void ApplicationImpl::StartStreaming(ServiceType service_type) {
+void ApplicationImpl::StartStreaming(
+ protocol_handler::ServiceType service_type) {
+ using namespace protocol_handler;
LOG4CXX_AUTO_TRACE(logger_);
std::pair<uint32_t, int32_t> stream_retry =
@@ -459,7 +462,9 @@ void ApplicationImpl::StartStreaming(ServiceType service_type) {
}
}
-void ApplicationImpl::StopStreaming(ServiceType service_type) {
+void ApplicationImpl::StopStreaming(
+ protocol_handler::ServiceType service_type) {
+ using namespace protocol_handler;
LOG4CXX_AUTO_TRACE(logger_);
if (ServiceType::kMobileNav == service_type) {
@@ -479,7 +484,9 @@ void ApplicationImpl::StopStreaming(ServiceType service_type) {
}
}
-void ApplicationImpl::SuspendStreaming(ServiceType service_type) {
+void ApplicationImpl::SuspendStreaming(
+ protocol_handler::ServiceType service_type) {
+ using namespace protocol_handler;
LOG4CXX_AUTO_TRACE(logger_);
if (ServiceType::kMobileNav == service_type) {
@@ -496,7 +503,9 @@ void ApplicationImpl::SuspendStreaming(ServiceType service_type) {
MessageHelper::SendOnDataStreaming(service_type, false);
}
-void ApplicationImpl::WakeUpStreaming(ServiceType service_type) {
+void ApplicationImpl::WakeUpStreaming(
+ protocol_handler::ServiceType service_type) {
+ using namespace protocol_handler;
LOG4CXX_AUTO_TRACE(logger_);
if (ServiceType::kMobileNav == service_type) {
@@ -549,12 +558,14 @@ void ApplicationImpl::OnAudioStartStreamRetry() {
}
void ApplicationImpl::OnVideoStreamSuspend() {
+ using namespace protocol_handler;
LOG4CXX_AUTO_TRACE(logger_);
LOG4CXX_INFO(logger_, "Suspend video streaming by timer");
SuspendStreaming(ServiceType::kMobileNav);
}
void ApplicationImpl::OnAudioStreamSuspend() {
+ using namespace protocol_handler;
LOG4CXX_AUTO_TRACE(logger_);
LOG4CXX_INFO(logger_, "Suspend audio streaming by timer");
SuspendStreaming(ServiceType::kAudio);
diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc
index 59cb689e0b..f1537c8f35 100644
--- a/src/components/application_manager/src/application_manager_impl.cc
+++ b/src/components/application_manager/src/application_manager_impl.cc
@@ -44,6 +44,7 @@
#include "application_manager/message_helper.h"
#include "application_manager/mobile_message_handler.h"
#include "application_manager/policies/policy_handler.h"
+#include "protocol_handler/protocol_handler.h"
#include "hmi_message_handler/hmi_message_handler.h"
#include "connection_handler/connection_handler_impl.h"
#include "formatters/formatter_json_rpc.h"
@@ -53,7 +54,6 @@
#include "utils/threads/thread.h"
#include "utils/file_system.h"
#include "utils/helpers.h"
-#include "protocol/service_type.h"
#include "smart_objects/enum_schema_item.h"
#include "interfaces/HMI_API_schema.h"
#include "application_manager/application_impl.h"
@@ -77,7 +77,6 @@ namespace formatters = NsSmartDeviceLink::NsJSONHandler::Formatters;
namespace jhs = NsSmartDeviceLink::NsJSONHandler::strings;
using namespace NsSmartDeviceLink::NsSmartObjects;
-using protocol_handler::ServiceType;
ApplicationManagerImpl::ApplicationManagerImpl()
: applications_list_lock_(true),
@@ -970,7 +969,7 @@ void ApplicationManagerImpl::ReplaceHMIByMobileAppId(
}
bool ApplicationManagerImpl::StartNaviService(
- uint32_t app_id, ServiceType service_type) {
+ uint32_t app_id, protocol_handler::ServiceType service_type) {
using namespace protocol_handler;
LOG4CXX_AUTO_TRACE(logger_);
@@ -991,7 +990,10 @@ bool ApplicationManagerImpl::StartNaviService(
}
it = res.first;
}
- service_type == kMobileNav ? it->second.first =
+ // Fill NaviServices map. Set true to first value of pair if
+ // we've started video service or to second value if we've
+ // started audio service
+ service_type == ServiceType::kMobileNav ? it->second.first =
true : it->second.second = true;
application(app_id)->StartStreaming(service_type);
@@ -1003,7 +1005,7 @@ bool ApplicationManagerImpl::StartNaviService(
}
void ApplicationManagerImpl::StopNaviService(
- uint32_t app_id, ServiceType service_type) {
+ uint32_t app_id, protocol_handler::ServiceType service_type) {
using namespace protocol_handler;
LOG4CXX_AUTO_TRACE(logger_);
@@ -1013,7 +1015,10 @@ void ApplicationManagerImpl::StopNaviService(
LOG4CXX_WARN(logger_, "No Information about navi service "
<< service_type);
} else {
- service_type == kMobileNav ? it->second.first =
+ // Fill NaviServices map. Set false to first value of pair if
+ // we've stopped video service or to second value if we've
+ // stopped audio service
+ service_type == ServiceType::kMobileNav ? it->second.first =
false : it->second.second = false;
}
@@ -1035,8 +1040,8 @@ bool ApplicationManagerImpl::OnServiceStartedCallback(
const connection_handler::DeviceHandle& device_handle,
const int32_t& session_key,
const protocol_handler::ServiceType& type) {
- using namespace protocol_handler;
using namespace helpers;
+ using namespace protocol_handler;
LOG4CXX_DEBUG(logger_,
"OnServiceStartedCallback " << type
@@ -1052,7 +1057,8 @@ bool ApplicationManagerImpl::OnServiceStartedCallback(
return false;
}
- if (Compare<ServiceType, EQ, ONE>(type, kMobileNav, kAudio)) {
+ if (Compare<ServiceType, EQ, ONE>(type,
+ ServiceType::kMobileNav, ServiceType::kAudio)) {
if (app->is_navi()) {
return StartNaviService(session_key, type);
}
@@ -1062,8 +1068,8 @@ bool ApplicationManagerImpl::OnServiceStartedCallback(
void ApplicationManagerImpl::OnServiceEndedCallback(const int32_t& session_key,
const protocol_handler::ServiceType& type) {
- using namespace protocol_handler;
using namespace helpers;
+ using namespace protocol_handler;
LOG4CXX_DEBUG(
logger_,
@@ -1081,7 +1087,8 @@ void ApplicationManagerImpl::OnServiceEndedCallback(const int32_t& session_key,
return;
}
- if (Compare<ServiceType, EQ, ONE>(type, kMobileNav, kAudio)) {
+ if (Compare<ServiceType, EQ, ONE>(type,
+ ServiceType::kMobileNav, ServiceType::kAudio)) {
StopNaviService(session_key, type);
}
}
@@ -2474,8 +2481,7 @@ bool ApplicationManagerImpl::IsLowVoltage() {
}
bool ApplicationManagerImpl::IsStreamingAllowed(
- uint32_t app_id, ServiceType service_type) const {
-
+ uint32_t app_id, protocol_handler::ServiceType service_type) const {
using namespace mobile_apis::HMILevel;
using namespace helpers;
@@ -2489,7 +2495,8 @@ bool ApplicationManagerImpl::IsStreamingAllowed(
}
bool ApplicationManagerImpl::CanAppStream(
- uint32_t app_id, ServiceType service_type) const {
+ uint32_t app_id, protocol_handler::ServiceType service_type) const {
+ using namespace protocol_handler;
LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = application(app_id);
@@ -2512,13 +2519,12 @@ bool ApplicationManagerImpl::CanAppStream(
void ApplicationManagerImpl::ForbidStreaming(uint32_t app_id) {
using namespace mobile_apis::AppInterfaceUnregisteredReason;
using namespace mobile_apis::Result;
- using namespace protocol_handler;
LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = application(app_id);
if (!app || !app->is_navi()) {
- LOG4CXX_DEBUG(logger_, "There is no application with id: " << app_id);
+ LOG4CXX_DEBUG(logger_, "There is no navi application with id: " << app_id);
return;
}
@@ -2545,7 +2551,7 @@ void ApplicationManagerImpl::OnAppStreaming(uint32_t app_id, bool state) {
ApplicationSharedPtr app = application(app_id);
if (!app || !app->is_navi()) {
- LOG4CXX_DEBUG(logger_, " There is no application with id: " << app_id);
+ LOG4CXX_DEBUG(logger_, " There is no navi application with id: " << app_id);
return;
}
state ? state_ctrl_.OnNaviStreamingStarted() :
@@ -2554,12 +2560,11 @@ void ApplicationManagerImpl::OnAppStreaming(uint32_t app_id, bool state) {
void ApplicationManagerImpl::EndNaviServices(uint32_t app_id) {
using namespace protocol_handler;
-
LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = application(app_id);
if (!app || !app->is_navi()) {
- LOG4CXX_DEBUG(logger_, "There is no application with id: " << app_id);
+ LOG4CXX_DEBUG(logger_, "There is no navi application with id: " << app_id);
return;
}
@@ -2572,11 +2577,11 @@ void ApplicationManagerImpl::EndNaviServices(uint32_t app_id) {
if (connection_handler_) {
if (it->second.first) {
LOG4CXX_DEBUG(logger_, "Going to end video service");
- connection_handler_->SendEndService(app_id, kMobileNav);
+ connection_handler_->SendEndService(app_id, ServiceType::kMobileNav);
}
if (it->second.second) {
LOG4CXX_DEBUG(logger_, "Going to end audio service");
- connection_handler_->SendEndService(app_id, kAudio);
+ connection_handler_->SendEndService(app_id, ServiceType::kAudio);
}
navi_app_to_stop_.push_back(app_id);
@@ -2594,7 +2599,6 @@ void ApplicationManagerImpl::OnHMILevelChanged(uint32_t app_id,
mobile_apis::HMILevel::eType to) {
using namespace mobile_apis::HMILevel;
using namespace helpers;
- using namespace protocol_handler;
if (from == to) {
return;
@@ -2608,7 +2612,7 @@ void ApplicationManagerImpl::OnHMILevelChanged(uint32_t app_id,
if (to == HMI_FULL || to == HMI_LIMITED) {
if (from == HMI_BACKGROUND) {
- RestoreStreamingAbility(app_id);
+ AllowStreaming(app_id);
}
} else if (to == HMI_BACKGROUND) {
if (from == HMI_FULL || from == HMI_LIMITED) {
@@ -2651,7 +2655,6 @@ void ApplicationManagerImpl::CloseNaviApp() {
LOG4CXX_AUTO_TRACE(logger_);
using namespace mobile_apis::AppInterfaceUnregisteredReason;
using namespace mobile_apis::Result;
- using namespace protocol_handler;
uint32_t app_id = navi_app_to_stop_.front();
navi_app_to_stop_.pop_front();
@@ -2670,20 +2673,19 @@ void ApplicationManagerImpl::EndNaviStreaming() {
LOG4CXX_AUTO_TRACE(logger_);
using namespace mobile_apis::AppInterfaceUnregisteredReason;
using namespace mobile_apis::Result;
- using namespace protocol_handler;
uint32_t app_id = navi_app_to_end_stream_.front();
navi_app_to_end_stream_.pop_front();
if (navi_app_to_stop_.end() == std::find(navi_app_to_stop_.begin(),
navi_app_to_stop_.end(), app_id)) {
- SuspendStreamingAbility(app_id);
+ DisallowStreaming(app_id);
}
}
-void ApplicationManagerImpl::SuspendStreamingAbility(uint32_t app_id) {
- LOG4CXX_AUTO_TRACE(logger_);
+void ApplicationManagerImpl::DisallowStreaming(uint32_t app_id) {
using namespace protocol_handler;
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = application(app_id);
if (!app || !app->is_navi()) {
@@ -2696,22 +2698,22 @@ void ApplicationManagerImpl::SuspendStreamingAbility(uint32_t app_id) {
if (navi_service_status_.end() != it) {
if (it->second.first) {
if (media_manager_) {
- media_manager_->StopStreaming(app_id, kMobileNav);
+ media_manager_->StopStreaming(app_id, ServiceType::kMobileNav);
}
app->set_video_streaming_allowed(false);
}
if (it->second.second) {
if (media_manager_) {
- media_manager_->StopStreaming(app_id, kAudio);
+ media_manager_->StopStreaming(app_id, ServiceType::kAudio);
}
app->set_audio_streaming_allowed(false);
}
}
}
-void ApplicationManagerImpl::RestoreStreamingAbility(uint32_t app_id) {
- LOG4CXX_AUTO_TRACE(logger_);
+void ApplicationManagerImpl::AllowStreaming(uint32_t app_id) {
using namespace protocol_handler;
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = application(app_id);
if (!app || !app->is_navi()) {
@@ -2724,13 +2726,13 @@ void ApplicationManagerImpl::RestoreStreamingAbility(uint32_t app_id) {
if (navi_service_status_.end() != it) {
if (it->second.first) {
if (media_manager_) {
- media_manager_->StartStreaming(app_id, kMobileNav);
+ media_manager_->StartStreaming(app_id, ServiceType::kMobileNav);
}
app->set_video_streaming_allowed(true);
}
if (it->second.second) {
if (media_manager_) {
- media_manager_->StartStreaming(app_id, kAudio);
+ media_manager_->StartStreaming(app_id, ServiceType::kAudio);
}
app->set_audio_streaming_allowed(true);
}
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 1e0d69f3e1..0f7a2a475f 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,6 +32,7 @@
#include "application_manager/commands/hmi/navi_audio_start_stream_request.h"
#include "application_manager/application_manager_impl.h"
+#include "protocol_handler/protocol_handler.h"
namespace application_manager {
@@ -54,6 +55,7 @@ void AudioStartStreamRequest::Run() {
}
void AudioStartStreamRequest::on_event(const event_engine::Event& event) {
+ using namespace protocol_handler;
LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl* app_mgr = ApplicationManagerImpl::instance();
@@ -72,18 +74,18 @@ void AudioStartStreamRequest::on_event(const event_engine::Event& event) {
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
case hmi_apis::FunctionID::Navigation_StartAudioStream: {
- LOG4CXX_INFO(logger_, "Received StartStream event");
+ LOG4CXX_DEBUG(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");
+ LOG4CXX_DEBUG(logger_, "StartAudioStreamResponse SUCCESS");
if (app_mgr->IsStreamingAllowed(app->app_id(), ServiceType::kAudio)) {
app->set_audio_streaming_started(true);
} else {
- LOG4CXX_INFO(logger_,
+ LOG4CXX_DEBUG(logger_,
"StartAudioStreamRequest aborted. Application can not stream");
}
}
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 9f9a3e0ec0..5547057a1f 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,7 +30,6 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include "application_manager/commands/hmi/navi_audio_start_stream_response.h"
-#include "application_manager/event_engine/event_dispatcher.h"
namespace application_manager {
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 ef6c6a41bd..328e6a5481 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,6 +32,7 @@
#include "application_manager/commands/hmi/navi_start_stream_request.h"
#include "application_manager/application_manager_impl.h"
+#include "protocol_handler/protocol_handler.h"
namespace application_manager {
@@ -55,6 +56,7 @@ void NaviStartStreamRequest::Run() {
}
void NaviStartStreamRequest::on_event(const event_engine::Event& event) {
+ using namespace protocol_handler;
LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl* app_mgr = ApplicationManagerImpl::instance();
@@ -73,18 +75,18 @@ void NaviStartStreamRequest::on_event(const event_engine::Event& event) {
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
case hmi_apis::FunctionID::Navigation_StartStream: {
- LOG4CXX_INFO(logger_, "Received StartStream event");
+ LOG4CXX_DEBUG(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");
+ LOG4CXX_DEBUG(logger_, "NaviStartStreamResponse SUCCESS");
if (app_mgr->IsStreamingAllowed(app->app_id(), ServiceType::kMobileNav)) {
app->set_video_streaming_started(true);
} else {
- LOG4CXX_INFO(logger_,
+ LOG4CXX_DEBUG(logger_,
"NaviStartStreamRequest aborted. Application can not stream");
}
}
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 a65e116796..a283891054 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,7 +30,6 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include "application_manager/commands/hmi/navi_start_stream_response.h"
-#include "application_manager/event_engine/event_dispatcher.h"
namespace application_manager {
diff --git a/src/components/application_manager/src/hmi_state.cc b/src/components/application_manager/src/hmi_state.cc
index ea54057aa6..16c0c09af2 100644
--- a/src/components/application_manager/src/hmi_state.cc
+++ b/src/components/application_manager/src/hmi_state.cc
@@ -64,7 +64,8 @@ NaviStreamingHmiState::audio_streaming_state() const {
using namespace helpers;
using namespace mobile_apis;
AudioStreamingState::eType expected_state = parent()->audio_streaming_state();
- if (Compare<HMILevel::eType, EQ, ONE> (hmi_level(), HMILevel::HMI_FULL)) {
+ if (Compare<HMILevel::eType, EQ, ONE> (hmi_level(), HMILevel::HMI_FULL) &&
+ !state_context_.is_navi_app(app_id_)) {
if (state_context_.is_attenuated_supported()) {
expected_state = AudioStreamingState::ATTENUATED;
} else {