summaryrefslogtreecommitdiff
path: root/src/components/application_manager/src/application_manager_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/application_manager/src/application_manager_impl.cc')
-rw-r--r--src/components/application_manager/src/application_manager_impl.cc31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc
index f16c21ea84..248b54fee5 100644
--- a/src/components/application_manager/src/application_manager_impl.cc
+++ b/src/components/application_manager/src/application_manager_impl.cc
@@ -143,6 +143,7 @@ ApplicationManagerImpl::ApplicationManagerImpl(
: settings_(am_settings)
, applications_list_lock_(true)
, audio_pass_thru_active_(false)
+ , audio_pass_thru_app_id_(0)
, driver_distraction_state_(
hmi_apis::Common_DriverDistractionState::INVALID_ENUM)
, is_vr_session_strated_(false)
@@ -784,6 +785,17 @@ bool ApplicationManagerImpl::BeginAudioPassThrough() {
}
}
+bool ApplicationManagerImpl::BeginAudioPassThru(uint32_t app_id) {
+ sync_primitives::AutoLock lock(audio_pass_thru_lock_);
+ if (audio_pass_thru_active_) {
+ return false;
+ } else {
+ audio_pass_thru_active_ = true;
+ audio_pass_thru_app_id_ = app_id;
+ return true;
+ }
+}
+
bool ApplicationManagerImpl::EndAudioPassThrough() {
sync_primitives::AutoLock lock(audio_pass_thru_lock_);
if (audio_pass_thru_active_) {
@@ -794,6 +806,17 @@ bool ApplicationManagerImpl::EndAudioPassThrough() {
}
}
+bool ApplicationManagerImpl::EndAudioPassThru(uint32_t app_id) {
+ sync_primitives::AutoLock lock(audio_pass_thru_lock_);
+ if (audio_pass_thru_active_ && audio_pass_thru_app_id_ == app_id) {
+ audio_pass_thru_active_ = false;
+ audio_pass_thru_app_id_ = 0;
+ return true;
+ } else {
+ return false;
+ }
+}
+
hmi_apis::Common_DriverDistractionState::eType
ApplicationManagerImpl::driver_distraction_state() const {
return driver_distraction_state_;
@@ -3222,9 +3245,8 @@ void ApplicationManagerImpl::UnregisterApplication(
commands_holder_->Clear(app_to_remove);
- if (audio_pass_thru_active_) {
+ if (EndAudioPassThru(app_id)) {
// May be better to put this code in MessageHelper?
- EndAudioPassThrough();
StopAudioPassThru(app_id);
MessageHelper::SendStopAudioPathThru(*this);
}
@@ -4441,6 +4463,11 @@ void ApplicationManagerImpl::AddMockApplication(ApplicationSharedPtr mock_app) {
apps_size_ = applications_.size();
applications_list_lock_.Release();
}
+
+void ApplicationManagerImpl::SetMockMediaManager(
+ media_manager::MediaManager* mock_media_manager) {
+ media_manager_ = mock_media_manager;
+}
#endif // BUILD_TESTS
#ifdef SDL_REMOTE_CONTROL
struct MobileAppIdPredicate {